参数个数错误(0表示2) - 方法错误

时间:2015-12-16 14:33:26

标签: ruby-on-rails ruby ruby-on-rails-4

为什么我会成为这样的错误消息? 这是我的控制器:

#app/controllers/dashboard_controller.rb
def upvote(user, post_id)
  @user=user
  @user.posts.find(post_id).increment!(:votes)
  redirect_to action: "view"
end

我在这里使用我的功能:

#app/views/dashboard/view.html.erb
<%=f.posts.find(i).votes%>, <%= link_to "+", upvote_dashboard_path(f,i) %>

2 个答案:

答案 0 :(得分:1)

您的控制器操作不会带任何参数,您可以使用$client->request('GET','your_url_here',['proxy'=>'']); 方法将任何参数传递给它们。例如,您的params链接如下所示:

upvote

您可以使用upvote_dashboard_path(user_id: f.id, post_id: i) params[:user_id]在您的控制器中访问它。

此外,我强烈建议您阅读一些Rails教程,因为这是Rails的基本知识。

答案 1 :(得分:0)

你不能像这样编写控制器actions。你必须写

def upvote
  @user= User find(params[:user_id])
  @user.posts.find(params[:post_id]).increment!(:votes)
  redirect_to action: "view"
end

并在视图部分

#app/views/dashboard/view.html.erb
<%=f.posts.find(i).votes%>, <%= link_to "+", upvote_dashboard_path(user_id: f.id, post_id: i) %>