Я просмотрел другие сообщения и не вижу, что я делаю неправильно. Я получаю эту ошибку:accepts_nested_attributes_for Formtastic вложенная форма
ActiveModel::MassAssignmentSecurity::Error in ProjectsController#create
Can't mass-assign protected attributes: blog_post
Вот мои две модели и моя форма. У меня создается впечатление, что в контроллере проекта нет ничего особенного. Есть ли что-нибудь в проекте или в контроллере blog_post, который может испортить это?
project.rb
class Project < ActiveRecord::Base
attr_accessible :name, :category_id, :user_id, :goal, :about, :headline, :image_url, :about_html, :blog_post_attributes
has_many :blog_posts, :dependent => :destroy
accepts_nested_attributes_for :blog_posts
end
blog_post.rb
class BlogPost < ActiveRecord::Base
attr_accessible :project_id, :user_id, :title, :blog_text, :commentable, :private
belongs_to :project
has_many :blog_post_replies, :dependent => :destroy
end
проекты/_new_form.html.erb
<%= semantic_form_for @project do |f| %>
<%= f.semantic_errors :state %>
<%= f.input :name, :as => :string %>
<%= f.input :headline, :as => :string %>
<%= f.input :about %>
<%= f.input :image_url, :as => :file %>
<%= f.input :category , :include_blank => false%>
<div class="well">
<%= f.semantic_fields_for :blog_post do |blog_post| %>
<%= blog_post.input :title, :as => :string, :label => "First Blog Post Title" %>
<%= blog_post.input :blog_text, :as => :text, :label => "First Blog Post Text" %>
<% end %>
</div>
<%= f.action :submit, :as => :button %>
<% end %>
EDIT Если я использую предложенный Formtastic формат:
<%= f.input :title, :for => :blog_post %>
<%= f.input :blog_text, :for => :blog_post %>
Я получаю эту ошибку; который заставляет меня думать, что это не видит вложенные атрибуты вообще:
NoMethodError in Projects#new
undefined method `title' for #<Project:0x007fb044745f58>
Я до сих пор получаю ту же ошибку, если меняю ': blog_post' на': blog_posts' –
Вы уверены, что h ave accepts_nested_attributes_for: blog_posts в проекте? – Salil
Да. И интересно установить: 'config.active_record.whitelist_attributes = false' не исправляет ошибку. –