Ruby on rails 组合查询后未定义的方法

Ruby on rails 组合查询后未定义的方法,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,我的模型是: class City < ActiveRecord::Base belongs_to :region has_many :activities has_many :restaurants end class Activity < ActiveRecord::Base belongs_to :city end 查看城市索引页 - @activities_restaurants.each do |b| %li

我的模型是:

class City < ActiveRecord::Base
  belongs_to :region
  has_many  :activities
  has_many  :restaurants
end


class Activity < ActiveRecord::Base
    belongs_to :city
end
查看城市索引页

- @activities_restaurants.each do |b|
              %li 
                =link_to b.name, polymorphic_path([@region, @city, b])

我收到错误消息“undefined method`activities'”我做错了什么?

是否将@city设置在其他地方?在这里的代码中看不到它

我会尽量简化你的代码。如果你把@activities\u餐厅简化为@activities或@restaurants,而不是两者兼而有之,那么两者都有效吗


这至少可以让您开始工作。

这一行导致错误:

@activities = @cities.activities.find_all_by_homepage_city(true)
您不能呼叫@cities.activities,而是执行以下操作:

通过区域关联添加多个

class Region < ActiveRecord::Base
  has_many :activities, :through => :cities
end

谢谢你的回复。查询现在可以工作了!但多态路径并非如此。我收到消息…未定义的方法“区域\活动\路径”您必须更新您的问题以提供更多信息:路线,城市索引页(如果更新)嗨…我提出了一个新问题,提供了更多细节,我想我帮助了您,因此您能接受我的贡献的答案吗?:)
class Region < ActiveRecord::Base
  has_many :activities, :through => :cities
end
@activities = @region.activities.find_all_by_homepage_city(true)