2014-09-24 2 views
0

На мой взгляд, у меня есть -Rails - nilclass в действии контроллера

<%= link_to 'remove pdf', controller: 'chap_comments', action: 'remove_file', id: comment.id %> 

В мой контроллер у меня есть -

def remove_file 
    @chap_comment.remove_chap_comment_pdf! 
    @chap_comment.save 
end 

... Я получаю undefined method remove_chap_comment_pdf» for nil: NilClass` - почему класс не распознан?

Аналогично, следующее -

<%= link_to 'remove pdf', remove_file_chap_comment_path(:id), method: :delete %> 

... получает ту же ошибку.

ответ

3
def remove_file 
    @chap_comment = ChapComment.find(params[:id) 
    @chap_comment.remove_chap_comment_pdf! 
    @chap_comment.save 
end 

Вы не нашли комментарий для главы или присвоили ему так, чтобы @chap_comment был равен нулю.

0

Вы пропускание id в link_to, но не использовать его, чтобы найти записи Вот почему ваши получает это error.use его: -

@chap_comment = ChapComment.find(params[:id) 
    ##do anything with this @chap_comment 

видеть в журнале сервер (консоль), вы можете увидеть что-то вроде этого: -

Processing by ChapsController#remove_file as HTML 
    Parameters: {"id"=>"9"} 

ЧТО ОЗНАЧАЕТ -вы имеет идентификатор, но не использовать его, хотя

Смежные вопросы