繁体   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