如何从三种模型的关系中访问一个模型的名称?

时间:2011-10-08 23:29:43

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 has-many

我需要在索引视图中打印出所有 来自类别 2(任意数字)的城市。到目前为止,我有城市中所有项目的实例(如下所示),现在我想按类别过滤它们。我怎么做?这是我的代码

    class CategoryController < ApplicationController
    def index
    @city= City.find(session[:city_id])
    @items=@city.items
    end
    end

索引视图

     <%=@item.each do |item|%>
     <%=item.item_name%>
     <%end%>

模型

       class City < ActiveRecord::Base
       has_many :items 
       end

       class Item < ActiveRecord::Base
   belongs_to :city
   belongs_to :category
       end

       class Category < ActiveRecord::Base
       has_many :items
       end 

1 个答案:

答案 0 :(得分:1)

控制器: 您应该可以执行以下操作:

@items = Item.find_by_city_and_category("city", "category")

或类似的东西:

@items = Item.where(:category => "category", :city => "city")

查看:

@items.each do |item|
 item.name