Ruby on rails 如何选择一个选项并显示结果?

Ruby on rails 如何选择一个选项并显示结果?,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,因此,我有一个应用程序非常简单,带有不同类别的下拉选择菜单。。每个类别都有一套食谱。所以,若你们点击选择菜单中的意大利语,我想显示一组意大利食谱 类别和配方是使用Active Admin创建的 前端选择菜单如下所示: <select class="styled email-input"> <% @category.each do |category| %> <option><%= category.name %></opt

因此,我有一个应用程序非常简单,带有不同类别的下拉选择菜单。。每个类别都有一套食谱。所以,若你们点击选择菜单中的意大利语,我想显示一组意大利食谱

类别和配方是使用Active Admin创建的

前端选择菜单如下所示:

<select class="styled email-input">
    <% @category.each do |category| %>
      <option><%= category.name %></option>
    <% end %>
    </select>
更新2款车型:

PG::UndefinedColumn: ERROR:  column recipes.category_id does not exist
LINE 1: SELECT "recipes".* FROM "recipes"  WHERE "recipes"."category_id...
                                               ^
: SELECT "recipes".* FROM "recipes"  WHERE "recipes"."category_id" = '2'
Recipe.rb

class Recipe < ActiveRecord::Base
  has_many :categories
  belongs_to :category

  validates :title, presence: true

end
类配方
Category.rb

class Category < ActiveRecord::Base
  belongs_to :recipe
end
类别
如果希望在视图中显示它而不重新加载页面,则需要为其编写javascript。否则,您将把所选选项作为参数传递给index操作,并像这样重新加载整个页面(我假设categories模型有一个name属性):

class-LandingController
那么你的观点可能是这样的:

<%= form_tag landing_index_path, method: 'get' do %>
  <%= select_tag "category_id", options_for_select(@category.map{ |category| [category.name, category.id] }, selected: params["category_id"])) %>
  <%= submit_tag "Submit" %>
<% end %>

也许你可以在下面展示相关的食谱,比如:

<% if @recipes %>
  <% @recipes.each do ...%>
    ...
  <% end %>
<% end %>

...

希望这有帮助

重新加载现在还可以,请提供一个示例,说明如何将所选选项作为参数传递给索引操作?谢谢谢谢虽然我得到了一个错误:(。我已经用它更新了原始帖子。我知道类别有菜谱id,但菜谱有类别id吗?类别属于菜谱,菜谱有很多类别。在你的菜谱表的迁移中是否有
属于类别
?请参阅第3.3节和第2.1节
<%= form_tag landing_index_path, method: 'get' do %>
  <%= select_tag "category_id", options_for_select(@category.map{ |category| [category.name, category.id] }, selected: params["category_id"])) %>
  <%= submit_tag "Submit" %>
<% end %>
<% if @recipes %>
  <% @recipes.each do ...%>
    ...
  <% end %>
<% end %>