一些背景:我有一个帖子控制器,用于用户创建或更新帖子。在帖子表单中,用户开始撰写他们的帖子。此帖子可以保存为草稿(然后表单切换功能以提交到控制器的“更新”操作),然后发布到页面,或直接发布到页面。
这些表单远程发布到页面,该页面附加一个包含帖子的表格。
目前,我遇到了一个问题:提交表单会发生故障,因为在附加表格后,我收到错误“ActionView :: Template :: Error(No route matches {:action =>”vote“,:controller =>“posts”,:post_id => 245,:positive => true})“。这指的是帖子视图中的一行代码:
<%= link_to (image_tag("icons/upvote.png", :height => "15px")), vote_post_path(:post_id => post.id, :positive => true), :remote => true %>
我应该提一下,将帖子附加到表中是通过使用保持控制器可用的@post变量来完成的。
现在奇怪的是,只有在将帖子直接提交到“创建”操作并尝试使用帖子附加表格时才会发生此错误。当保存的草稿提交到“更新”操作并附加到表格上时,不会发生这种情况。
有没有人对这是为什么有任何建议?我可以在相关的地方提供更多代码。
编辑:我的路线文件的相关部分:
resources :posts do
member do
get :vote
end
end
答案 0 :(得分:2)
问题在于您将“投票”操作视为成员操作,而不是集合操作。切换到:
resources :posts do
collection do
get :vote
end
end
答案 1 :(得分:0)
试试这个,看看会发生什么:
resources :posts do
resources :votes
end