मैं ऐसा करने के लिए एक अच्छा तरीका नहीं देख सकता है कि रेल द्वारा प्रदान किए गए तरीकों के माध्यम से, कम से कम -v3.2.14 में नहीं
@ शेहर नसीर विकल्प हैश का संदर्भ देता है जिसका उपयोग समस्या को हल करने के लिए किया जा सकता है लेकिन जहाँ तक मुझे लगता है कि वह जिस तरह से सुझाव देता है, मैं उसे नहीं देख सकता।
मैंने यह किया =>
<%= f.fields_for :blog_posts, {:index => 0} do |g| %>
<%= g.label :gallery_sets_id, "Position #{g.options[:index]}" %>
<%= g.select :gallery_sets_id, @posts.collect { |p| [p.title, p.id] } %>
<%# g.options[:index] += 1 %>
<% end %>
या
<%= f.fields_for :blog_posts do |g| %>
<%= g.label :gallery_sets_id, "Position #{g.object_name.match(/(\d+)]/)[1]}" %>
<%= g.select :gallery_sets_id, @posts.collect { |p| [p.title, p.id] } %>
<% end %>
मेरे मामले में तीसरे क्षेत्र के लिए g.object_name
इस तरह एक स्ट्रिंग लौटाता है "gallery_set[blog_posts_attributes][2]"
तो मैं सिर्फ उस स्ट्रिंग में सूचकांक से मेल खाता हूं और इसका उपयोग करता हूं।
वास्तव में एक कूलर (और शायद क्लीनर?) ऐसा करने के लिए एक मेमने को पारित करने और वेतन वृद्धि के लिए कॉल करना है।
# /controller.rb
index = 0
@incrementer = -> { index += 1}
और देखने में
<%= f.fields_for :blog_posts do |g| %>
<%= g.label :gallery_sets_id, "Position #{@incrementer.call}" %>
<%= g.select :gallery_sets_id, @posts.collect { |p| [p.title, p.id] } %>
<% end %>