0

我无法使用 id 列以外的关联模型的属性来获取命名范围。

我有一个包含 city_id 列的公司模型。我还有一个带有名称列的城市模型。

我想获得这样的宁静网址,以便利用 has_scope gem 并拥有瘦控制器

http://localhost:3000/firms?by_city=Dublin

但是使用当前代码我只能插入城市 ID

http://localhost:3000/firms?by_city=546

这是我的named_route

class Firm < ActiveRecord::Base       
named_scope :by_city, proc {|city| { :conditions => { :city => city } } }
end

任何关于如何修改命名范围以使用该名称生成 url 的想法将不胜感激!

谢谢,

杰克

4

1 回答 1

2

您需要添加belongs_to到公司类,然后为命名范围添加城市连接,以便您可以在查询中获取城市名称。像这样的东西

class Firm < ActiveRecord::Base
  belongs_to :city
  named_scope :by_city, lambda {|city_name| {:joins => :city, :conditions => {:city => {:name => city_name}}}}
end
于 2010-04-09T16:53:51.480 回答