2012-02-18 9 views
36

मेरे पास एक ऐसा फॉर्म है जो form_tag का उपयोग कर रहा है और यह सुनिश्चित नहीं है कि simple_form gem के साथ इसका उपयोग कैसे करें। इस प्रकार मेरा फॉर्म दिखता है:क्या simple_form के साथ form_tag काम करता है?

<%= form_tag create_multiple_prices_path, :method => :post do %> 

    <% @prices.each_with_index do |price, index| %> 
    <%= fields_for "prices[#{index}]", price do |up| %> 
     <%= render "fields", :f => up %> 
    <% end %> 
    <% end %> 

    <%= submit_tag "Done" %> 
<% end %> 

क्या यह किया जा सकता है? form_tag कैसे सरल_form सही तरीके से उपयोग करने के लिए बदल जाएगा? fields_for के साथ इसका उपयोग करते समय क्या करें? एक नौसिखिया कुछ मदद का उपयोग कर सकता है।

धन्यवाद।

उत्तर

16

simple_form form_for के आसपास एक रैपर है, form_tag नहीं। आप के बजाय simple_form_for का उपयोग कर सकते हैं, लेकिन form_tag केवल निर्दिष्ट सामग्री के साथ <form> टैग बनाता है, यह सरल रूप के लिए प्रासंगिक नहीं है।

131

यदि आप किसी मॉडल से बंधे हुए फॉर्म को नहीं बना रहे हैं तो भी आप simple_form का उपयोग कर सकते हैं।

एक उदाहरण के रूप में इस साइन-इन फॉर्म लें:

{ 
    ... 
    "signin" => { 
    "email"=>"[email protected]", 
    "password"=>"[FILTERED]"}, 
    "commit"=>"Sign In" 
    } 
} 

अपने नियंत्रक आप उपयोग कर प्रपत्र फ़ील्ड्स को संदर्भित कर सकते में:

params[:signin][:email] ... 

<%= simple_form_for :signin, { url: signin_path } do |f| %> 
    <%= f.input :email %> 
    <%= f.input :password %> 
    <%= f.button :submit, "Sign In" %> 
<% end %> 

कि निम्नलिखित की तरह पैरामीटर उत्पन्न होगा

+0

धन्यवाद एक बहुत। यही वही है जो मुझे चाहिए। – gotqn

+0

धन्यवाद। मुझे बहुत मदद करो। – zires

+0

बहुत बहुत धन्यवाद! मैं इस समस्या के साथ 2 घंटे तक था और आपने मुझे बचाया। धन्यवाद! – Blaze

5

आप

के उपयोग से बच सकते हैं
params[:signin][:email] 

<%= f.input :email, input_html: { name: "email" } %> 

का उपयोग कर तो

params[:email] 
+0

यही मुझे चाहिए! – ngoue

1

@barelyknown की तरह कहा तुम भी मॉडल के बिना simple_form उपयोग कर सकते हैं तुम भी उपयोग कर सकते हैं field_for या simple_field_for

<%= simple_form_for :transaction_limits, {url: create_multiple_prices_path, method: :post} do |f| %> 
    <% @prices.each_with_index do |price, index| %> 
    <%= f.fields_for "prices[#{index}]", price do |up| %> 
     <%= render "fields", :f => up %> 
    <% end %> 
    <% end %> 

    <%= f.submit "button" %> 
<% end %> 
संबंधित मुद्दे