0

私は他の投稿を見てきましたが、何が間違っているのかわかりません。次のエラーが表示されます。

ActiveModel::MassAssignmentSecurity::Error in ProjectsController#create

Can't mass-assign protected attributes: blog_post

これが私の 2 つのモデルと私のフォームです。プロジェクト コントローラーに必要なものは何もないという印象を受けました。これを台無しにする可能性のあるプロジェクトまたは 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>
4

1 に答える 1

0

エラーは次のとおりです。

<%= f.semantic_fields_for :blog_post do |blog_post| %>

そのはず:

<%= f.semantic_fields_for :blog_posts do |blog_post| %>

(:blog_post の代わりに:blog_posts)

于 2012-05-18T06:05:34.487 に答える