неопределенный метод `title' для nil:NilClass в почтовой программе

Я новичок в ror, и у меня возникла проблема с моим приложением:

У меня есть модель тикетов и модель комментариев,

    class Ticket < ActiveRecord::Base
      attr_accessible :content, :title, :user, :priority, :category, :status
      validates_presence_of :content, :title, :category
      has_many :comments, dependent: :destroy
      accepts_nested_attributes_for :comments
    end

    class Comment < ActiveRecord::Base
      attr_accessible :content, :ticket_id, :user
      belongs_to :ticket
    end

Теперь я хочу отправить письмо при создании комментария: В контроллере комментариев:

      def create
        @comment = Comment.new(params[:comment])

       respond_to do |format|
         if @comment.save

           TicketMailer.ticket_commented(@comment).deliver

           format.html { redirect_to @comment, notice: 'Comment was successfull created.' }
          format.json { render json: @comment, status: :created, location: @comment }
        else
          format.html { render action: "new" }
          format.json { render json: @comment.errors, status: :unprocessable_entity }
       end
      end
    end

Затем в почтовике:

    class TicketMailer < ActionMailer::Base
      default from: "[email protected]"

    def ticket_commented(comment)
       @comment = comment
        @ticket = Ticket.find_by_id(@comment.id)

       mail(:to => @comment.user, :subject => 'New comment')
     end

   end

Но когда я пытаюсь позвонить

<%= @ticket.title %>

В виду, я получил эту ошибку: undefined methodtitle' для nil: NilClass`

Я сделал что-то неправильно? Или как правильно передать @ticket в почтовик?


person Erik    schedule 19.06.2013    source источник


Ответы (1)


В почтовой программе вы пытаетесь найти тикет, указав id комментария, измените строку @ticket = Ticket.find_by_id(@comment.id) на @ticket = @comment.ticket

person Luís Ramalho    schedule 19.06.2013
comment
Спасибо чувак, полностью работает! Я не знал, что могу сделать @comment.ticket, даже если комментарий принадлежит билету. - person Erik; 20.06.2013
comment
Рад, что смог помочь, загляните на guides.rubyonrails.org/association_basics.html. - person Luís Ramalho; 20.06.2013