2014-07-24 69 views
2

我有2個主要組件到我的應用程序,用戶和屬性。該URL的結構應該像:hostname.com/users/:user_id/properties/:property_id。我相信我在某處發生了配置錯誤,因爲Rails從不識別「property_path」或其任何變體,我必須對它們進行硬編碼才能使重定向生效。尋找更好的方式來定義我的Rails路徑/路徑

的routes.rb

resources :users do 
    resources :properties 
    end 

用戶/ show.html.erb - 請注意,我不得不硬編碼的路徑,而不是簡單地鏈接到 「我」

<% @user.properties.each do |i| %> 
<li><%= link_to "#{i.address}", "https://stackoverflow.com/users/#{@user.id}/properties/#{i.id}" %></li> 
<% end %> 


我怎樣才能更好地定義我的路線,以便我可以將上面的鏈接僅僅代表「properties_path」的「我」,並自動重定向到顯示頁面?

+1

請參閱http://stackoverflow.com/questions/1548009/rails-link-to-routes-and-nested-resources尋求答案 – atomAltera

+0

謝謝@atomAltera,以及我錯過了一個錯誤。這似乎肯定是一個重複的問題,然後 – tim5046

回答

4

您不必對其進行硬編碼。你可以這樣做:

<% @user.properties.each do |property| %> 
    <li><%= link_to property.address, [@user, property] %></li> 
<% end %> 

是的,就這麼簡單。欲瞭解更多信息,你可以去Rails guides

+1

不錯,我不知道你可以這樣鏈接,但現在它是完全合理的。通過這種結構,Rails只有在與@user關聯時纔會查找「屬性」路徑。謝謝Marek,我會在7分鐘內接受這個問題 – tim5046