[英]How do I add/remove values to a collection_select (Drop-Down List) in Rails?
我正在尋找有關如何在下拉列表中添加和刪除值的一些指導。
這是我在View/Project/_form.html.erb
使用的代碼
<div class="control-group">
<%= vf.label(:category_id, :class => "control-label") %>
<div class="controls">
<%= vf.collection_select :category_id, Category.all, :id, :name, prompt: true %>
</div>
</div>
它正在檢索我在seeds.rb
提供的值的列表。
在Rails中,有沒有一種添加某種“新值”選擇的好方法,可以讓我輸入一些文本並將其保存到“下拉列表”中?
現在,我不想在代碼中添加一些額外的靜態值。 用戶在使用應用程序時可以在表單中輸入其他值,這將是更多的事情。
我猜這將涉及某種JQUERY Dialog Box
和AJAX
調用,但我希望自己能走運。
無論哪種方式,任何形式的幫助或示例都將不勝感激。
我將向此頁面添加一個輔助表單:
form_for @category, remote: true, :url => {:action => "add_category"} do |f|
f.text_field :category_name
f.submit "Add category"
在您的控制器中,您將處理遠程表單並呈現一個javascript模板以更新您的選擇框。 就像是:
def add_category
Category.create(category_params)
respond_to do |format|
format.js
end
end
然后,您將具有一個add_category.js視圖:
$(".controls").html("<%= j (render 'category_selects') %>");
最后,您需要創建“ category_selects”部分以更新選擇值:
<%= collection_select :category_id, Category.all, :id, :name, prompt: true %>
如果您還沒有的話,我建議您仔細閱讀“使用JavaScript”導軌指南: http : //edgeguides.rubyonrails.org/working_with_javascript_in_rails.html
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.