我一直试图通过以下控制器将追随者添加到微博上:
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传递给控制器。The <%= link_to 'Follow' uses micropost_new_path(micropost), method: 'follow' %>
所以我不知道我做错了什么。定义适当的路由(错误声明这是一个microposts#create错误,我不知道为什么。
发布于 2018-08-05 21:11:15
这里可能有一些不太正确的地方,但第一个突出的问题是,您似乎误解了method选项用于link_to的目的。在这里," method“并不意味着您的控制器的方法的名称,它意味着用于请求的HTTP方法(例如POST、PUT、DELETE等等)。因此,这个链接很可能是无意中调用create操作而不是follow操作。
要添加其他操作,请参阅添加更多RESTful操作路由指南中的部分
作为创建添加关注者的方法的一个简单示例:
如果您的路线中有一个被定义为资源的微站:
resources :microposts并希望有一个新的操作(如“跟踪”)应用于个人微博,您可以将资源更新为:
resources :microposts do
post 'follow', on: :member
end然后,您可以在您的follow中添加一个microposts_controller.rb方法,类似于您已经完成的工作。在编辑您的路由之后,这还将提供一个follow_micropost_path助手函数,该函数可用于链接到此操作。
https://stackoverflow.com/questions/51698068
复制相似问题