2011-05-14 23 views
5

मैं निम्नलिखित के साथ एक "index.html.erb" फ़ाइल है:पासिंग उदाहरण चर js.erb करने के लिए फ़ाइल (रेल 3/jQuery)

<% = प्रस्तुत करना @users%>

यह "_user.html.erb" renders और प्रत्येक उपयोगकर्ता पर एक निश्चित क्रिया करने के लिए एक बटन आउटपुट:

<% = LINK_TO "कार्रवाई", action_path (उपयोगकर्ता),: आईडी => "# { user.id} _action ",: दूरस्थ => सत्य)%>

मैंने "action.js.erb" को देखकर AJAX अनुरोध का जवाब देने के लिए अपना उपयोगकर्ता नियंत्रक सेट अप किया है।

आंशिक उपयोगकर्ताओं के भीतर विशेष उपयोगकर्ताओं पर जावास्क्रिप्ट विधियों को करने के लिए, और मैं जानना चाहता हूं कि मेरे आंशिक (जैसे user.id) से इंस्टेंस चर कैसे js.erb फ़ाइल में पास या एक्सेस किया जा सकता है, उदाहरण के लिए:

$("#{@user.id}_action").toggle(); 

उत्तर

11

आप बस अपनी *.html.erb -files में की तरह अपने *.js.erb -files में जानकारी का उपयोग, @users या अन्य उदाहरण चर नियंत्रक में घोषित का उपयोग कर:

$("#<%= @user.id %>_action").toggle(); 
+0

कृपया संपादित करें देखें। js.erb के भीतर @ user.id को घोषित करना क्योंकि इस तरह पहचाना नहीं जा रहा है। – neon

+0

मैंने एक उदाहरण के साथ अद्यतन किया। उम्मीद है की वो मदद करदे! – Magnar

+0

भयानक। "#" उपसर्ग का उपयोग कर सीएसएस आईडी घोषित करने के लिए एक मामूली संपादन के साथ काम करता है। (कृपया अपने उत्तर में संपादन करें, यह मुझे ऐसा करने नहीं देगा)। धन्यवाद! – neon

7

वहाँ एक उत्कृष्ट मणि जिसे गॉन कहा जाता है जो चीजों को सरल और व्यवस्थित कर सकता है: https://github.com/gazay/gon/blob/master/README.md

+0

बिल्कुल सही !! ठीक वही जो मेरे द्वारा खोजा जा रहा था!! –

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