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