2010-04-09 58 views
0

我在使用id列以外的關聯模型的屬性獲取命名作用域時遇到問題。如何使用具有關聯模型屬性的變量命名作用域其他ID

我有一個固定的模型,它有一個city_id列。 我也有一個名稱列的城市模型。

我希望得到寧靜的網址,這樣,使利用has_scope寶石,並有骨感控制器

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

但是使用本代碼,我只能插入城市標識

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

這是我的named_route

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

有關如何修改命名作用域的任何想法o爲了生成使用名稱的網址將不勝感激!

感謝,

傑克

回答

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 
+0

感謝的東西 - 這工作,但需要稍微修改 named_scope:by_city,拉姆達{| CITY_NAME | {:joins =>:city,:conditions => {:cities => {:name => city_name}}}} – 2010-04-10 08:44:35

相關問題