Activerecord 接受\u嵌套的\u属性\u与formtastic和曲别针组合使用

Activerecord 接受\u嵌套的\u属性\u与formtastic和曲别针组合使用,activerecord,ruby-on-rails-3,paperclip,formtastic,nested-attributes,Activerecord,Ruby On Rails 3,Paperclip,Formtastic,Nested Attributes,我正在尝试我有一个简单的一对多关联。我正在尝试通过嵌套表单更新属于相册的照片: 相册的编辑表单: <%= semantic_form_for(@album, :url => user_album_path(@user, @album), :html => {:method => :put} ) do |f| %> <%= f.inputs do %> <%= f.input :title %> <%= f.input :des

我正在尝试我有一个简单的一对多关联。我正在尝试通过嵌套表单更新属于相册的照片:

相册的编辑表单:

<%= semantic_form_for(@album, :url => user_album_path(@user, @album), :html => {:method => :put} ) do |f| %>
 <%= f.inputs do %>
  <%= f.input :title %>
  <%= f.input :description %>
 <% end %>
 <%= f.inputs :for => :photos do |builder|%>
  <%= builder.input :_destroy, :as => :boolean %>
 <% end %>
 <%= f.submit "Submit", :disabled_with => 'Submiting...' %>
<% end %>
抛出的错误为:

ActiveRecord::UnknownAttributeError in AlbumsController#update

unknown attribute: 0
Rails.root: /Users/stefanohug/orangerie

Application Trace | Framework Trace | Full Trace
app/controllers/albums_controller.rb:50:in `update'
Request

Parameters:

{"_snowman"=>"☃",
 "_method"=>"put",
 "authenticity_token"=>"bE4AidmbaVoG9XBqolCxheyWtd7qeltkIpMRgd8c4Fw=",
 "album"=>{"title"=>"lol",
 "description"=>"hihi",
 "photos_attributes"=>{"0"=>{"_destroy"=>"1",
 "id"=>"72"},
 "1"=>{"_destroy"=>"1",
 "id"=>"73"},
第50行对应于更新属性行

谢谢你的帮助


我发现了错误。它在控制器中:

def update
    @user = User.find(params[:user_id])
    @album = @user.albums.find(params[:id])
    if @album.update_attributes(params[:album][:photos_attributes])
      flash[:success] = t('users.flash.album_updated')
      redirect_to @user
    else
      render :edit
    end
end
@album.update_attributes(params[:album][:photos_attributes])
应改为:

@album.update_attributes(params[:album])
嗯…:D

ActiveRecord::UnknownAttributeError in AlbumsController#update

unknown attribute: 0
Rails.root: /Users/stefanohug/orangerie

Application Trace | Framework Trace | Full Trace
app/controllers/albums_controller.rb:50:in `update'
Request

Parameters:

{"_snowman"=>"☃",
 "_method"=>"put",
 "authenticity_token"=>"bE4AidmbaVoG9XBqolCxheyWtd7qeltkIpMRgd8c4Fw=",
 "album"=>{"title"=>"lol",
 "description"=>"hihi",
 "photos_attributes"=>{"0"=>{"_destroy"=>"1",
 "id"=>"72"},
 "1"=>{"_destroy"=>"1",
 "id"=>"73"},
@album.update_attributes(params[:album][:photos_attributes])
@album.update_attributes(params[:album])