【问题标题】:Dynamically adding nested form动态添加嵌套表单
【发布时间】:2011-01-03 22:20:01
【问题描述】:

我一直在关注这个 railscast http://media.railscasts.com/videos/074_complex_forms_part_2.mov

我有一个任务和步骤。每个任务可以有很多步骤。

我正在尝试通过单击链接来添加嵌套表单。 railscast 显示的内容与我所拥有的内容之间的区别在于,我的步骤控制器中有我的步骤表单,但这应该不是问题。

我也在使用带有 jQ​​uery 的 rails3,但还没有看到任何关于如何在 rails3 中执行此操作的教程。

我的任务/new.html.erb

{:multipart => true do |f| %> f %>

我的任务/_form.html.erb

f % >
'steps/form', :object => Step.new end %> &lt%= f.提交 %>

步骤/form.html.erb

页面加载正常,但是当我单击“添加步骤链接”时,出现两个 javascript 错误。

RJS 错误: TypeError:Element.insert 不是函数

然后

Element.insert("steps", {bottom: "

\n\t

\t"});

标签: javascript ruby-on-rails-3 nested-forms


【解决方案1】:

link_to_function 在 rails3 中不再有效。

我所做的是 1) 观看此截屏视频http://railscasts.com/episodes/205-unobtrusive-javascript

我现在有 'link_to_function' 而不是

true, :class=>'addStep'%>

然后我有一个 content_for 来处理和显示 javascript (jQuery)

$('a.addStep').click(function(){ $('div#newStep').html(""); })

这是将表单添加到页面,但由于渲染没有将步骤连接到任务,因此并没有全部连接起来。还不完全确定如何编写,但表单现在正在添加到页面中,它只是无法正确提交。

【讨论】:

    【解决方案2】:

    您应该试试这个 gem https://github.com/ryanb/nested_form,这样设置起来就更容易了,不会让人头疼。您是否还使用http://railscasts.com/episodes/196-nested-model-form-part-1http://railscasts.com/episodes/197-nested-model-form-part-2 查看了 Rail-casts。这些是全新的复杂形式,而不是它的嵌套模型,同样的事情。

    去掉所有的 'h' 并确保将应用程序助手底部的 Jquery 行更改为:

    link_to_function(name, "add_fields(this, \"#{association}\", \"#{escape_javascript(fields)}\")")
    

    本帖可以指导你:rails fields_for render partial with multiple locals producing undefined variable

    还要阅读 Rails 转换的 cmets 区域,因为它们通常一直更新到今天的代码。

    【讨论】:

      猜你喜欢
      • 2018-08-26
      • 1970-01-01
      • 2011-11-09
      • 1970-01-01
      • 2014-07-14
      • 1970-01-01
      • 1970-01-01
      • 2015-05-24
      • 2020-10-29
      相关资源
      最近更新 更多