:
[ [key, value], [key, value], [key, value], ... ]
कहाँ कुंजीविकल्प मान और मूल्यविकल्प पाठ है: संग्रह पैरामीटर कुंजी/मान जोड़े की एक सरणी स्वीकार करता है।
ऑब्जेक्ट के अनुरूप मॉडल में इस सरणी को उत्पन्न करना सबसे अच्छा है जिसके लिए आप विकल्पों की सूची जेनरेट करना चाहते हैं, न कि आपके दृश्य में।
लगता है जैसे आपके पास best_in_place अप और चल रहा है, तो यहां एक प्रोजेक्ट शो पेज का एक सरल उदाहरण है, जहां आप किसी विशेष प्रोजेक्ट के लिए किसी विशेष प्रोजेक्ट के लिए निर्दिष्ट बॉक्स को बदलने के लिए best_in_place का उपयोग करना चाहते हैं।
## CONTROLLER
# GET /projects/1
# GET /projects/1.xml
# GET /projects/1.json
def show
@project = Project.find(params[:id])
respond_to do |format|
format.html
format.xml { render :xml => @project.to_xml }
format.json { render :json => @project.as_json }
end
end
## MODELS
class User
has_many :projects
def self.list_user_options
User.select("id, name").map {|x| [x.id, x.name] }
end
end
class Project
belongs_to :user
end
## VIEW (e.g. show.html.erb)
## excerpt
<p>
<b>Assigned to:</b>
<%= best_in_place @project, :user_id, :type => :select, :collection => User::list_user_options %>
</p>
# note :user_id and not :user
ध्यान दें कि स्मृति से, best_in_place के मास्टर संस्करण एक का चयन करें बॉक्स के लिए ajax अनुरोध मूल्य या बदला नहीं गया है या नहीं भेजता है।
कुछ भी ध्यान में रखना; best_in_place मौजूदा रिकॉर्ड्स के "जगह में" संपादन के लिए है, नए नहीं बना रहा है (इसके लिए, नए पृष्ठ के लिए अपने _form आंशिक में संग्रह_ चयन करें)।
धन्यवाद! यह काम कर रहा है ... आपके उदाहरण के अंत में आपके पास मौजूद कोड को याद करना आसान है ओएस एक्स –
में क्रोम स्क्रॉलिंग के लिए धन्यवाद, अगर आपको यह मदद मिली तो आपको इसे अपने उत्तर के रूप में चुनना चाहिए। – marcamillion
इस उत्तर के लिए धन्यवाद, एक सवाल यह है कि हम 'चयन' में 'रिक्त' विकल्प को कैसे चुन सकते हैं? यानी पूरी तरह से 'खाली' या 'कोई नहीं' या ऐसा कुछ। – marcamillion