簡體   English   中英

如何在Rails中向collection_select(下拉列表)添加/刪除值?

[英]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 BoxAJAX調用,但我希望自己能走運。

無論哪種方式,任何形式的幫助或示例都將不勝感激。

我將向此頁面添加一個輔助表單:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM