RoR - 简单表单输入

时间:2016-07-12 17:24:42

标签: ruby-on-rails ruby

使用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

1 个答案:

答案 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