2010-02-11 96 views
3

我想弄清楚如何在link_to_remote標籤上構建我的路徑以適應嵌套路由。我有一個屬於組模型的文章模型,文章中有與之相關的投票(使用Vote_Fu插件)。我首先爲文章創建了代碼,並且它能夠工作,但是在添加組模型和更新所有內容的過程中,現在下面的鏈接已被打破。我知道它正在尋找不再有效的new_question_path,但我無法弄清楚要替換它。Link_to_remote與嵌套路由

<%= link_to_remote "+(#{@article.votes_for})", 
    :update=>"vote", 
    :url => { :controller=>"articles", 
      :action=>"vote", 
      :id=>@article.id, 
      :vote=>"for"}, 
      :html => { :class => "up" } %> 

任何幫助將是可怕的。謝謝!

UPDATE:

看起來這個問題在我的路線。我在我的文章控制器中有一個投票方法,但它不知道要找那個。我將我的routes.rb文件更改爲:

group.resources :articles, :member => { :vote => :get } 

看起來問題可能已解決。

回答

1

是的,即:您的路由器中的成員選項將公開投票行爲作爲有效路徑。但我想你可能還想考慮添加一個投票模型,然後說文章has_many:votes。

那麼你將有一個VotesController和路由器將有map.resources :articles, :has_many => :votes,允許網址,如/用品/ 1 /票等

你可能會認爲這是矯枉過正有投票一個獨立的模型,但在你的應用程序的生活,它可能被證明是有用的跟蹤誰投票什麼時候,等等。

然後再次,如果您的網站是非常小的,你可能永遠不需要該功能。這是您在爲域建模時必須考慮的折衷方法。使用RESTful資源只是突出了你脫離常態的事實:)