2016-01-14 5 views
10

मैं एक ऐसा फॉर्म बनाने की कोशिश कर रहा हूं जिसमें एक टेक्स्ट फ़ील्ड और एक छुपा फ़ील्ड है जिसे मैं HTTP API पर डेटा पास करते समय उपयोग करने जा रहा हूं, इसलिए मेरे पास कोई नहीं है इसके साथ जुड़े मॉडल, और विस्तार से, कोई परिवर्तन नहीं।किसी मॉडल या परिवर्तन के बिना form_for का उपयोग कर

क्या ऐसा करना संभव है और form_for का उपयोग करें या फ़ॉर्म बनाने के लिए HTML लिखने का उत्तर है?

+0

हाय, स्पाइक! फीनिक्स सवालों के आस-पास बस स्नूपिन पर ठोकर खाई। –

उत्तर

19

आप form_for/4 का उपयोग Plug.Conn को पहले तर्क के रूप में पास कर सकते हैं।

the docs से

(विशेष रूप से "कनेक्शन डेटा के साथ" खंड):

form_for/4 पहले तर्क के रूप में की उम्मीद किसी भी डेटा संरचना है कि Phoenix.HTML.FormData प्रोटोकॉल लागू करता है। By default, Phoenix implements this protocol for Plug.Conn, हमें केवल कनेक्शन जानकारी के आधार पर फॉर्म बनाने की इजाजत देता है।

यह उपयोगी है जब आप ऐसे फॉर्म बना रहे हैं जो किसी भी प्रकार के मॉडल डेटा से समर्थित नहीं हैं, जैसे खोज फ़ॉर्म।

<%= form_for @conn, search_path(@conn, :new), [as: :search], fn f -> %> 
    <%= text_input f, :for %> 
    <%= submit "Search" %> 
<% end %> 
+0

धन्यवाद! मैंने आज सुबह उस पृष्ठ को स्किम किया, लेकिन उस खंड को नहीं देखा। यह कमाल का है। –

+3

'नाम' कीवर्ड बहिष्कृत किया गया है और नया कीवर्ड 'form_for' में' as' है। –

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