新手问题 rails 增加 form 字段出错

minix · 2012年10月23日 · 最后由 santochancf 回复于 2012年10月24日 · 2703 次阅读

要在 form 里动态增加字段,抄袭了 http://railscasts.com/episodes/74-complex-forms-part-2 里面的内容,不知道怎么回事。想请教一下各位:

home.html.erb

1 <%= form_for @add_dev, as: 'add_dev', url: { controller: "home", action: "create" } do |f| %>
2   <%= f.label "Ip" %>
3   <%= f.text_field :ip_addr %>
4   <div id="add_dev">
5     <%= render partial: "sys", collection: @add_dev.syss %>
6   </div>
7   <%= add_dev_link "Add" %>
8   <%= f.submit "Submit" %>
9 <% end %>

_sys.html.erb

1 <%= fields_for "add_dev[syss_attributes][]", sys do |sys_stat| %>
2   <p>
3   Server: <%= sys_stat.text_field :server %>
4   Port: <%= sys_stat.text_field :port %>
5   <%= sys_stat.hidden_field :oid, value: get_oid %>
6   </p>
7 <% end %>

helper

19   def add_dev_link(name)
20     link_to_function name, nil do |page|
21       page.insert_html :bottom, partial: 'sys', object: Sys.new
22     end
23   end

运行没问题,就是点击后没反应!

<%= fields_for "add_dev[syss_attributes][]", sys do |sys_stat| %>

好像应该是

<%  fields_for "add_dev[syss_attributes][]", sys do |sys_stat| %>

类似的还有 form_for;看起来好像就这些问题

@santochancf 如果改为 <% fields_for "add_dev[syss_attributes][]", sys do |sys_stat| %>的话,整个_sys.html.erb 就看不到了。

#2 楼 @minix form_for 的也改了么?

@santochancf 如果改成 <% form_for @add_dev, as: 'add_dev', url: { controller: "home", action: "create" } do |f| %>就整个 form 都没了,整个页面都空白

#4 楼 @minix 我傻了……之前说错了的 😓

#4 楼 @minix 我查了下 API,insert_html 在 rails3.0.9 已经没了……

需要 登录 后方可回复, 如果你还没有账号请 注册新账号