我一直在遵循一个非常标准的UJS模型来处理很多AJAX,并且它工作得很好 - 但是有一种情况我不确定最佳实践是什么。我有一个模型,用的has_many关系说:使用UJS在Rails中动态插入多个嵌套form_fields
class User < ActiveRecord::Base
has_many :aliases
accepts_nested_attributes_for :aliases, :allow_destroy => true
end
class Alias < ActiveRecord::Base
belongs_to :User
end
现在,在我的User对象,新的观点,我希望用户能够点击一个按钮,因为他们喜欢添加尽可能多的别名 - 每次按下按钮时,它触发开了一个控制器动作的远程请求,看起来像这样:
def new_ajax
@alias = Alias.new({})
respond_to do |format|
format.js
end
end
这个回复我new_ajax.js.erb模板看起来像这样:
$('#aliases-container').append('<%= j(render 'ajax_new')%>');
WHI CH又将呈现一个模板,看起来像这样:
<%=simple_fields_for @alias do |f|%>
<%= f.input :name %>
<% end %>
这一切工作,我得到我的别名表单字段渲染 - 但问题是ID和NAME属性没有在嵌套字段正确设置。 ID和别名应该按顺序编号,以便在create方法和错误处理中建立适当的关联。有没有人有解决这个问题?
你知道你的关联应该是小写,对? 'belongs_to:user' –