簡體   English   中英

Rails-如何呈現兩個相同但具有不同元素ID的表單?

[英]Rails - how to render two identical forms but with different element IDs?

我想在單個頁面上使用兩種幾乎相同的形式,並使用一部分通過render調用生成兩種形式。

<%= render 'form_template', data: @categories_one %>
<%= render 'form_template', data: @categories_two %>

問題在於它們唯一的區別-兩種形式都使用f.collection_select為用戶提供具有類別的保管箱。

<%= f.collection_select :category_id, data, :id, :name %>

它為SELECT標記創建兩個具有相同ID的不同表單,破壞了我的表單,我希望避免這種情況。 但是我該怎么辦呢?

您可以將:namespace參數傳遞給form_for

表單的名稱空間,以確保表單元素上id屬性的唯一性。 命名空間屬性將在生成的HTML ID上帶有下划線前綴。

如果查看collection_select文檔 ,您會看到它的最后一個參數是HTML選項。 因此,您可以執行以下操作:

<%= f.collection_select :category_id, data, :id, :name, {}, {:id => "different_css_id"} %>

因為您說過在同一個渲染調用中部分調用了此方法,所以您可以傳遞一個變量來切換此行為。

# Render calls
<%= render 'form_template', data: @categories_one %>
<%= render 'form_template', data: @categories_one, :locals => {:use_other_id => true} %>

然后在您的局部使用該標志。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM