我正在寻找一些关于如何在我的下拉列表中添加和删除值的指导。
以下是我在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是否有一种很好的方法可以添加某种新的价值&#34;选择,然后我可以输入一些文本并将其保存到下拉列表?
现在我不想在代码中添加一些额外的静态值。这对于用户在使用应用程序时能够在表单中输入附加值更有用。
我猜这会涉及某种JQUERY Dialog Box
和AJAX
电话,但我希望能够幸运。
无论哪种方式,任何形式的帮助或例子将不胜感激。
答案 0 :(得分:0)
我会在页面中添加一个辅助表单,如下所示:
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
希望这有帮助!