Rails嵌套form_for

时间:2014-06-17 11:07:38

标签: ruby-on-rails

当我设置nested_attributes

时,我不明白为什么我的file_field会消失

我的模特:

class Item < ActiveRecord::Base
    attr_accessible :asset_attributes

     has_one :asset
     accepts_nested_attributes_for :asset
end


class Asset < ActiveRecord::Base

   attr_accessible :item_id, :photo
   belongs_to :item


end

我的HTML:

<%= form_for @item do |f| %>

    <%= f.fields_for :asset do |asset| %>
        <%= asset.file_field :photo %>
    <% end %>
<% end %>

为什么,当我设置accept_nested_attributes_for :asset时,file_fields会消失?

此form_for适用于现有的@item。我首先创建@item因为我需要item_id - 所以form_for用于更新操作。

1 个答案:

答案 0 :(得分:2)

您必须构建asset的关系对象。在控制器操作中尝试:

def new
  @item = Item.new
  @item.build_asset
end

对于编辑操作,如果项目和资产有关联...则只会出现嵌套属性