我正在使用https://github.com/ryanto/acts_as_votable gem。我是一个错误:
PostsController #index中的NoMethodError - #<#:0x007fb5010f34b8>
的未定义方法`upvote_post_path'
基本上我所做的是在我的视图中为特定任务添加链接。
<%= link_to "upvote", upvote_post_path(post), method: put %>
类似的链接:
<%= link_to "edit", edit_post_path(post)%>
在同一个视图中工作得很好。这是我控制器中这两种方法的一部分:
def destroy
@post = current_post
@post.destroy
flash[:success] = "Post deleted"
redirect_to request.referrer || root_url
end
def upvote
@post.liked_by current_user
end
这些是我的路线:
resources :users
resources :posts do
put 'upvote', to: 'posts#upvote'
end
我无法弄清问题在哪里。
答案 0 :(得分:4)
您在upvote_post_path
视图中的来电应该是:
post_upvote_path(post)
代替upvote_post_path(post)
应如下所示:
<%= link_to "upvote", post_upvote_path(post), method: put %>
答案 1 :(得分:1)
你的路线呼叫应该是
$("#btnStart").click(function () {
myWindow = window.open(baseUrl + "/EvernoteProvider/Authorize", '_blank', 'width=500,height=500, scrollbars=no,resizable=no');
myWindow.focus();
});
代替post_upvote_path(post)
答案 2 :(得分:1)
根据佣金路线
<%= link_to "upvote", post_upvote_path(post), method: put %>