小编adm*_*mgc的帖子

在预构建嵌套模型实例时,Rails nested_form link_to_add不起作用

我正在粗略地将ryanb的令人敬畏的nested_form gem集成到我的rails 3.1.3应用程序中.我担心我的Javascript技能太有限,无法知道它是我的代码(可能)还是需要更改的宝石.也许有人可以提供帮助.

设置:我有一个":household"类:accepts_nested_attributes_for":members(people)".我正在运行开发服务器.我将nested_form.js移动到/ app/assets/javascripts目录.我几乎肯定它只被采购一次.

问题:如果在家庭控制器"新"方法中,我这样做:

@household = Household.new
Run Code Online (Sandbox Code Playgroud)

我只看到视图中的家庭原生字段(预期),并且"link_to_remove"和"link_to_add"链接呈现/删除成员字段部分(预期).但是,如果我这样做:

@household = Household.new
@household.members.build
Run Code Online (Sandbox Code Playgroud)

我在视图中看到了家庭原生字段(预期),成员本地字段的一个呈现部分(预期),但"link_to_remove"和"link_to_add"什么都不做(意外).我无法添加另一个:成员部分在那一点,也不删除已经显示的:成员部分.

我很难过.下面是看似相关的精简源文件.我从git存储库获取了nested_form插件(最后捆绑了2012.04.18)...


/app/models/household.rb

class Household < ActiveRecord::Base
  has_many :members, :class_name => "Person"
  accepts_nested_attributes_for :members
  attr_accessible :id, :name, :member_ids
  attr_accessible :members_attributes
end #class
Run Code Online (Sandbox Code Playgroud)

/app/models/person.rb

class Person < ActiveRecord::Base
  belongs_to :household  
  attr_accessible :id, :name_given, :name_middle, :name_family, :household_id 
end #class
Run Code Online (Sandbox Code Playgroud)

/app/controllers/households_controller.rb

  <snip>
  # GET /households/new
  # GET /households/new.json
  def new
    @household = Household.new
    @household.members.build     # <---- Removing this changes the behavior

    respond_to do |format|
      format.html # new.html.erb
      format.json { …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails partial-views jquery-plugins nested-attributes ruby-on-rails-3.1

8
推荐指数
1
解决办法
3627
查看次数