Jquery 如何向Rails中的集合添加/删除值?

Jquery 如何向Rails中的集合添加/删除值?,jquery,ruby-on-rails,ajax,ruby-on-rails-3.2,Jquery,Ruby On Rails,Ajax,Ruby On Rails 3.2,我正在寻找一些关于如何在下拉列表中添加和删除值的指导 这是我在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

我正在寻找一些关于如何在下拉列表中添加和删除值的指导

这是我在
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对话框
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') %>");
$(“.controls”).html(“”);
最后,您需要创建“category_selects”部分以更新选择值:

<%= collection_select :category_id, Category.all, :id, :name, prompt: true %>

如果您还没有,我建议您阅读“使用JavaScript”rails指南:


希望这有帮助

按照我的回答,你能让它工作吗?你需要额外的帮助吗?我正在想办法。我很快会告诉你的。谢谢,还有一些问题。使用我的第二个表单在视图中为NilClass:Class
获取未定义的方法“model_name”。我之所以标记这个答案,是因为我一直在阅读“使用JavaScript”rails指南:您推荐并获取了我的数据以用于该示例。我可以从这里找到如何将其应用于
集合。