ruby-on-rails - Link_to_remote 与嵌套路由

标签 ruby-on-rails routing nested link-to-remote

我试图弄清楚如何在 link_to_remote 标记上构建我的路径以适应嵌套路由。我有一个属于组模型的文章模型,并且文章有与之关联的投票(使用 Vote_Fu 插件)。我首先为文章创建了代码并且它工作了,但是在添加组模型和更新我的所有路径的过程中,下面的链接现在被破坏了。我知道它正在寻找不再起作用的 new_question_path,但我不知道用什么替换它。

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

任何帮助都是极好的。谢谢!

更新:

看起来问题出在我的路线上。我的文章 Controller 中有一个投票方法,但它不知道要查找它。我将 routes.rb 文件更改为:
group.resources :articles, :member => { :vote => :get }

看起来问题可能会得到解决。

最佳答案

是的,路由器中的 :member 选项会将投票操作公开为有效路径。但我认为您可能还想考虑添加一个 Vote 模型,然后说 Article has_many :votes。

然后,您将拥有一个 VotesController,而您的路由器将拥有 map.resources :articles, :has_many => :votes , 允许使用诸如/articles/1/votes 等 URL。

您可能会认为拥有一个单独的 Votes 模型有点矫枉过正,但在您的应用程序的整个生命周期中,跟踪谁在何时投票等可能会很有用。

再说一次,如果您的网站非常小,您可能永远不需要该功能。这是在对域进行建模时必须考虑的一种权衡。使用 RESTful 资源只是突出了您正在打破常规的事实 :)

关于ruby-on-rails - Link_to_remote 与嵌套路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2247087/

相关文章:

ruby - 如果找不到文件,则在 sinatra 中呈现 404

ruby-on-rails - Rails - 如何从 www.website.com 重定向到 website.com

html - rails 中不支持的浏览器通知

windows - 通过 VMWARE 路由 VPN(Macosx - Windows)

javascript - 如何将嵌套的对象数组推送到数组?

c++ - 如何结合 BOOST_PP_IF 和 BOOST_PP_LPAREN?

javascript - 嵌套三元 JavaScript

javascript - Algolia 使用 Javascript 显示数组值

ruby-on-rails - 双向 self 参照关联

php - CodeIgniter 子文件夹和 URI 路由