【发布时间】:2010-04-10 05:23:49
【问题描述】:
如果您在嵌套表单上看到railscasts,这是动态创建链接的辅助方法。但是,在我升级到 ruby 1.9.2 和 rails 3 之后,这不起作用,我现在知道为什么了。
def link_to_add_fields(name, f, association)
new_object = f.object.class.reflect_on_association(association).klass.new
fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
render(association.to_s.singularize + "_fields", :f => builder)
end
link_to_function(name, h("add_fields(this, \"#{association}\", \"#{escape_javascript(fields)}\")"))
end
这里是javascript
function add_fields(link, association, content) {
var new_id = new Date().getTime();
var regexp = new RegExp("new_" + association, "g")
$(link).up().insert({
before: content.replace(regexp, new_id)
});
}
当我查看源代码时,链接是这样呈现的:
<p><a href="#" onclick="add_fields(this, "dimensions", ""); return false;">Add Dimension</a></p>
所以&quot;&quot; 不是构建新模板的正确信息,并且字段字符串的设置方式正在发生一些事情。比如fields= f.fields_for
【问题讨论】:
-
我还没有在 Rails 3 中尝试过嵌套表单,但 AFAIK 在这方面并没有太大变化。您需要在此处提供更多详细信息,具体是什么不起作用?尝试使用 Firebug 来帮助确定问题。
-
我稍后会在问题中添加更多代码。
标签: ruby-on-rails