2015-06-12 40 views
0

我有一個公司模式的轉變友好-ID的唯一產生的標題名稱,我使用friendly_id這樣 friendly_id :name, use: :slugged使用另一個表的屬性

但由於可能有很多公司使用相同的名稱(不同分支機構)。我試圖通過使用公司地址的城市屬性來處理這種情況。

但公司地址存儲在不同的表地址中。

so company.address.city給了我公司的城市。

friendly_id :slug_candidates, use: :slugged 

    # Try building a slug based on the following fields in 
    # increasing order of specificity. 
    def slug_candidates 
    [ 
     :name, 
     [:name, :city] 
    ] 
    end 

我知道我可以做類似上面的事情。但由於city不是公司的屬性,我如何實現這一目標?

更新: 可能的解決方案是創建一個幫助方法city,它返回公司的城市。

但問題從未如此。

我使用的friendly_id版本是4.0.10.1 ,並且使用slug_candidates的功能在版本5和更高版本中可用。

我試着更新寶石。但它不會得到更新,因爲版本5依賴於activerecord 4.0並且rails依賴於activerecord 3.2.13

這是一種僵局。不知道該怎麼辦

回答

1
class Company < ActiveRecord::Base 

    ............................. 
    def city 
    self.address.city 
    end 
end 
+0

我相信這應該工作。但我現在面臨另一個問題。並做了一些閱讀,其背後的原因是因爲friendly_id版本不是v5或更高版本。 – Alfie

+0

讓我添加我無法升級friendly_id,因爲我得到一個錯誤, – Alfie

+0

'''在Gemfile中: rails(= 3.2.13)ruby依賴於 activerecord(= 3.2.13)ruby friendly_id(〜 > 5.1.0)ruby取決於 activerecord(> = 4.0.0)ruby ''' – Alfie

相關問題