使用Ruby on Rails的简单表单gem,我有一个如下所示的表单:
<%= simple_form_for(article, html: {class: 'form-vertical'}) do |f| %>
...
<div class="field">
<%= f.collection_select :category_id, Category.all, :id, :name, {prompt: "Choose a category"} %>
<%= f.collection_select :subcategory_id, Subcategory.all, :id, :name, {prompt: "Choose a subcategory"} %>
<%= f.input :title %>
<%= f.input :content, input_html: { rows: 20 }%>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
有没有办法根据类别输入中选择的子类别输入中的选项?我的意思是,如果我有一个类别“食物”,那么我将能够选择一个子类别“apple”,但不能选择“table”。这有可能吗?
类别模型:
class Category < ApplicationRecord
has_many :articles
has_many :subcategories
end
子类别模型:
class Subcategory < ApplicationRecord
belongs_to :category
end
答案 0 :(得分:0)
单独使用rails无法实现您想要发生的事情。 Rails对页面更新执行操作。你需要的是一个像jQuery这样的JavaScript库来改变页面内容,例如.change()
$("#article_category_id").change(function() {
# Code to update content of subcategory
}
可在此网站上找到示例,例如:Use jQuery to change a second select list based on the first select list option