2013-07-29 5 views
15

simple_form ध्यान में रखते हुए सबमिट बटन पर इस तरह है:रेल 3.2.12 में simple_form दृश्य में सबमिट बटन पर क्लिक करते समय पैरा पास करने का कोई तरीका है?

<%= f.button :submit, 'Save' %> 

हम एक पैरामीटर subaction पारित करने के लिए जब Save बटन पर क्लिक कर रहे हैं। params[:subaction] बटन पर क्लिक करने के बाद 'अपडेट' का मूल्य होना चाहिए। यहाँ क्या हम ध्यान में रखते हुए की कोशिश की, लेकिन यह काम नहीं किया है:

<%= f.button :submit, 'Save', :subaction => 'update' %> 

वहाँ जब Save बटन पर क्लिक params[:subaction] में एक मूल्य के पारित करने के लिए एक तरीका है?

उत्तर

27

नाम और मूल्य विकल्प का उपयोग करें।

<%= f.button :submit , name: "subaction",value: "update"%> 

अपने नियंत्रक आप पैरामीटर प्राप्त होगा [: subaction] के रूप में DAX बताते मूल्य "अद्यतन"

+0

कोशिश की गई <% = f.button: submit, name: 'subaction', value: for_which,: class => BUTTONS_CLS ['action']%> और for_which एक स्ट्रिंग है और पैराम [: सबएक्शन] शून्य है। काम नहीं किया। – user938363

+0

मैं इस कोड का उपयोग कर रहा हूं और काम कर रहा हूं। फॉर्म सबमिट करते समय लॉग देखें, चाहे पैरा भेज रहे हों या नहीं। –

+8

ने अभी यह कोशिश की है और यह मेरी ज़रूरत के लिए काम कर रहा है, लेकिन यह सबमिट बटन के टेक्स्ट को "मान:" के मान में बदल रहा है - क्या नाम/मूल्य रखने के लिए कोई तरीका है नियंत्रक को जिस जानकारी की आवश्यकता है, उसे अभी भी नाम दें सबमिट बटन के लिए मेरे चयन का? यानी: बटन टेक्स्ट "अगला छात्र" होना चाहिए लेकिन यह "2" '<% = f.submit" अगला छात्र ",: वर्ग => 'big_button दौर अचयनित', नाम:" student_group_id ", मान: @ student_group.id%> ' – dax

15

साथ,

<%= hidden_field_tag(:subaction, 'update') %> 
<%= f.button :submit, 'Save' %> 

इस स्ट्रिंग मान 'अपडेट' प्रदान करेगा छिपे हुए क्षेत्र के माध्यम से घुमावदार नियंत्रक कार्रवाई। यह तो

params[:subaction] 
6

साथ नियंत्रक के द्वारा प्राप्त किया जा सकता है f.button :button, type: 'submit' निर्दिष्ट करके, हम name और value विशेषताओं के रूप में एक भी परम का उपयोग कर प्रस्तुत करने के लिए इस प्रकार का उपयोग कर सकते हैं। विशेष रूप से, सबमिट मूल्य (उदा।, 'केक') बटन टेक्स्ट से अलग हो सकता है (उदा।, 'बेस्ट केक')।

_form.html.erb

<%= f.button :button, 'The Best Cake', type: 'submit', name: 'dessert_choice', value: 'cake' %> 
<%= f.button :button, 'The Best Pie', type: 'submit', name: 'dessert_choice', value: 'pie' %> 

नियंत्रक

def controller_action 
    dessert_choice = params[:dessert_choice] # 'cake' or 'pie' 
end 

यह दृष्टिकोण से ऊपर टिप्पणी में आपका उल्लेख @dax के रूप में छिपा आदानों के लिए जरूरत से बचा जाता है।

रेल 4.2 के साथ सरल फॉर्म 3.3.1 पर परीक्षण किया गया।

संबंधित मुद्दे