试图向微博添加关注者,错误:“缺少参数微博”

时间:2018-08-05 20:36:16

标签: ruby-on-rails ruby

我一直在尝试使用以下控制器将关注者添加到微博中:

microposts_controller.rb:

def follow
  @user = current_user
  set_micropost
  if @micropost.user_id != current_user.id
    @micropost.followed += 1
    @micropost.save
  end
end

问题是总是存在“缺少参数”错误“微博”。表示我没有将@micropost传递给控制器​​。的     <%= link_to 'Follow' uses micropost_new_path(micropost), method: 'follow' %>

所以我不知道我在做什么错。定义了适当的路由(错误指出是microposts#create错误,我不确定为什么。

1 个答案:

答案 0 :(得分:1)

这里有些事情可能不太正确,但第一个突出的问题是您似乎误解了method的{​​{1}}选项的用途。在这里,“方法”并不表示您的控制器方法的名称,而是用于请求的 HTTP方法(例如POST,PUT,DELETE等)。可能是此链接无意中调用了link_to操作而不是create操作。

要添加其他操作,请查看Adding More RESTful Actions上路由指南中的部分


作为创建添加关注者方法的简短示例:

如果您将微博定义为路线中的资源:

follow

,并希望将一项适用于单个微博的新操作(例如“关注”)更新为:

resources :microposts

然后您可以在resources :microposts do post 'follow', on: :member end 中添加一个follow方法,类似于已经完成的操作。编辑路线后,这还将提供一个microposts_controller.rb帮助函数,可用于链接到此操作。