3

实际上,我刚刚从Railsforum复制了一个老问题,他在09年5月提出了这个问题,唯一的答复是作者自己的不善解决方案。我想知道有没有人知道更好的方法?否则,我将最终使用JavaScript来移动隐藏字段。fields_for和jQuery手风琴兼容性

这里的原题:


您好! 感谢您对此主题的任何建议:

是否有可能覆盖Rails在fields_for has_many关联中自动生成隐藏ID字段?我想创造我自己的,这样我就可以选择事情发生的地方。

这里的原因:

我试图把一个jQuery UI的手风琴部件周围,看起来有点像这样一种形式:

<div id="diagram_elements_form"> 
    <% diagram_form.fields_for :elements do |element_fields| %> 
     <% link_to "#" do %> 
      <%= element_fields.object.name %> 
     <% end %> 
     <%= render :partial => "edit_element_base", :locals => { :f => element_fields } %> 
    <% end %> 
</div> 

模型,简化,看起来像:

class Diagram < ActiveRecord::Base 
    has_many :elements 
    accepts_nested_attributes_for :elements 
end 

我觉得我已经有了模型/控制器的东西,因为我可以删减我的内心。但是手风琴全部都是扭曲的。

jQuery UI/Accordion部件查找HTML的形式:

<div id="accordion"> 
    <a href="#">First header</a> 
    <div>First content</div> 
    <a href="#">Second header</a> 
    <div>Second content</div> 
</div> 

这似乎是一件容易的事情与轨道来完成,但我真的很呛人。 这些选项卡显示出来但是是倾斜的,最后我意识到这是因为rails自动为fields_for中的每个对象添加的hidden_​​field。我风什么了这个样子的:

<div id="accordion"> 
    <input type="hidden" name="...id" value="2" /> 
    <a href="#">First header</a> 
    <div>First content</div> 
    <input type="hidden" name="...id" value="3" /> 
    <a href="#">Second header</a> 
    <div>Second content</div> 
</div> 

...使得隐藏字段越来越作为手风琴结构的一部分。我想移动DIV标签内的ID字段。有任何想法吗?再次

感谢, 泰勒


我在这里有完全相同的问题,因为泰勒。 fields_for生成的隐藏字段正在搞乱手风琴用户界面,目前我无法看到改变它们位置的方式,除了用javascript移动它们。

我将在railsforum上发布一个链接,希望泰勒能够从您的集体智慧中获得任何收益。

Regards,

Kevin。

回答

3

由于Rails 2.3.5,您可以将f.hidden_field(:id)放置在您希望它存在的位置,Rails将填写详细信息。

有关此更改的票证是available here