[英]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.