【发布时间】:2016-02-19 02:34:20
【问题描述】:
所以我现在正在阅读一本关于 Rails 开发的书,但遇到了一个问题。我有一个带有一些操作的“用户”控制器。我在其中定义的操作之一是“跟随”但是,每当我尝试使用 rails 助手在我的视图中链接到该操作时,它都会告诉我我没有定义该路线。这是我的控制器的样子:
class UsersController < ApplicationController
def follow
@user = User.find(params[:id])
if current_user.follow!(@user)
redirect_to @user, notice: "Follow successful!"
else
redirect_to @user, alert: "Error following."
end
end
我尝试通过两种方式链接到此。这是第一个:
<%= link_to "Follow", {action: 'follow'}, class: 'btn btn-default' %>
这会产生错误:“No route matches {:action=>"follow", :controller=>"users", :id=>"2"}"
这里是第二种方式:
<%= link_to "Follow", follow_user_path(@user), class: 'btn btn-default' %>
这会产生消息:“# 的未定义方法 `follow_user_path'”
即使我运行 rake 路由,路径也不会显示在那里,即使我已经在我的 routes.rb 文件中定义了
resources :users
我现在完全不知所措。我做错了什么?
【问题讨论】:
标签: ruby-on-rails ruby routing routes