2013-11-08 3 views
0

ActiveModel :: ForbiddenAttributesError извлеченного источник (около линии № 3):ActiveModel :: ForbiddenAttributesError в CommentsController # создать

  1. Защиту создать
  2. @post = Post.find (PARAMS [: post_id])
  3. !
  4. @comment = @ post.comments.create (PARAMS [: комментарий])
  5. redirect_to @post
  6. конец
  7. конец

Rails.root: C:/Пользователи/ManU/Рабочий стол/quick_blog Трассировка приложения | Рамочная трасса | Полный след

приложение/контроллеры/comments_controller.rb: 4: в `создать»

То, что я должен делать, чтобы справиться с этой ошибкой ..... пожалуйста, дайте мне SOLN с пути, а также ... у меня нет предварительной информации об этом .....

+0

возможно дубликат [ActiveModel :: ForbiddenAttributesError при создании нового пользователя] (http://stackoverflow.com/questions/17335329/activemodelforbiddenattributeserror-when-creating-new-user) –

+0

Использование Windows писать рельсы приложений? :) Если вы новичок, я бы пошел на виртуальный бокс и установил ubuntu и написал там рубин. Вы получаете некоторые полезные функции, такие как FileUtils.rm и т. Д., Если вы делаете манипуляции с файлами когда-либо. – Timbinous

ответ

8

Вы, кажется, следуете инструкциям pre rails 4.0 с рельсами 4. Теперь вам нужно использовать сильные параметры.

http://guides.rubyonrails.org/action_controller_overview.html#strong-parameters

есть также railscast на нем, что должно помочь.

@comment = @post.comments.create!(params.require(:comment).permit!) 


@comment = @post.comments.create!(params.require(:comment).permit(:comment_text,:link)) 

Первый позволит всем Params быть разрешено, последний позволит только comment_text и link быть приняты.

+0

Вам не хватает закрывающих фигурных скобок методов '.create!'. –

+0

doh! спасибо @GabrielOsorio – Doon

+0

Спасибо .. Я начинаю и подозреваю, что проблема связана с сильными парамами, поэтому ваш ответ очень помог. –

1

Если система бросает ActiveModel :: ForbiddenAttributesError, это означает, что вы должны использовать strong_parameters гема или ваши рельсы должны иметь версии больше, чем 4, в этом случае strong_parameters камня уже включен в этой версии. В этом случае вы добавите следующий код на свой application_controller.rb, чтобы избавиться от этой ошибки.

before_filter do 
    resource = controller_name.singularize.to_sym 
    method = "#{resource}_params" 
    params[resource] &&= send(method) if respond_to?(method, true) 
end 
Смежные вопросы