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)