Ruby on rails 使用Formtastic';的语义字段与有许多关联

Ruby on rails 使用Formtastic';的语义字段与有许多关联,ruby-on-rails,nested-forms,formtastic,Ruby On Rails,Nested Forms,Formtastic,我正在尝试使用formtastic创建一个嵌套表单。我在下面列出了我的代码,但遇到了一些问题,我也在下面列出了这些问题。有什么建议吗?谢谢 # Home model class Home < ActiveRecord::Base has_many :home_members accepts_nested_attributes_for :home_members, :reject_if => :all_blank, :update_only => true, :allow

我正在尝试使用formtastic创建一个嵌套表单。我在下面列出了我的代码,但遇到了一些问题,我也在下面列出了这些问题。有什么建议吗?谢谢

# Home model
class Home < ActiveRecord::Base
  has_many :home_members
  accepts_nested_attributes_for :home_members, :reject_if => :all_blank, :update_only => true, :allow_destroy => true
end


# Form builder in members/new.html.erb
<%= semantic_form_for @home, :url => home_members_path(@home), :html => { :method => :post }, :remote => true do |f| %>
  <%= f.inputs do %>
    <%= f.semantic_fields_for :home_members do |h| %>
    <%= h.input :name %>
    <%= h.input :email %>
    <%= h.input :birthday, :as => :string %>
  <% end %>
<% end %>

# members_controller's new method; @home is set in a before filter
def new
  2.times{ @home.home_members.build }
end
#主模式
类Home:all\u blank,:update\u only=>true,:allow\u destroy=>true
结束
#members/new.html.erb中的表单生成器
home_members_path(@home),:html=>{:method=>:post},:remote=>true do | f |%>
:字符串%>
#成员们对主计长的新方法感到满意@在before过滤器中设置home
def新
2.时报{@home.home_members.build}
结束
  • 保存主页时将创建默认用户。如何使表单仅显示新创建的记录而不显示现有记录

  • 如果无法使用#1,如何更新现有记录?我在的accepts_nested_attributes_上仅设置了update_,但仍会创建一条新记录

  • 我正在控制器操作中执行2.times{@home.home\u members.build}。当我打印@home.home_成员的大小时,我得到了预期的3个(一个已经存在)。为什么表单只显示两组输入,其中一组填充了现有的home_成员数据

  • 好的,回答问题1)只显示新创建的对象

    # Form builder in members/new.html.erb
    <%= semantic_form_for @home, :url => home_members_path(@home), :html => { :method => :post }, :remote => true do |f| %>
      <%= f.inputs do %>
        <%= f.semantic_fields_for :home_members do |h| %>
        <% if h.object.new_record? %>
          <%= h.input :name %>
          <%= h.input :email %>
          <%= h.input :birthday, :as => :string %>
        <% end %>
      <% end %>
    <% end %>
    
    #members/new.html.erb中的表单生成器
    home_members_path(@home),:html=>{:method=>:post},:remote=>true do | f |%>
    :字符串%>
    
    我过去成功地使用过cocoon

    你还需要这个问题的答案吗?如果你找到了解决方案,你能自己发布答案吗?