【发布时间】:2015-02-06 07:58:24
【问题描述】:
所以我很困惑。我是 Ruby on Rails 的新手(我使用的是 Rails 4),过去两天我一直在试图弄清楚为什么我的 link_to 标签一直将我的 login 操作路由到 show。我从控制器中删除了show 操作,甚至删除了show.html.erb,但Rails 仍然坚持尝试将其路由到不再存在的show 操作。
我删除了所有redirect_to 函数,我创建的link_to 将我带到正确的页面localhost:8000/users/login,但现在显示错误Unknown Action: The action 'show' could not be found for UsersController。
我已经阅读了其他类似的 SO 问题,有些人认为这可能是 jquery_ujs 的问题,我从文件中删除了它以查看是否是问题所在,但我仍然得到相同的结果结果。
我的views目录下的文件如下:
- 查看次数
- 用户
- new.html.erb
- login.html.erb
- 用户
我的代码如下所示:
users/new (new.html.erb) 中的link_to
<li><%= link_to "Login", users_login_path %></li>
routes.rb
resources :users
root 'users#new'
get 'users/create'
get 'users/login'
users_controller.rb
class UsersController < ApplicationController
def new
end
def create
@user = User.create(:username => params[:username], :password => params[:password])
@user.save
@users = User.all
end
def login
@message = "Success"
end
end #end class
login.html.erb(只是在这里测试一个输出,看看它是否会到达这个页面)
<h3><%= @message %></h3>
rake routes 命令的输出
Prefix Verb URI Pattern Controller#Action
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PATCH /users/:id(.:format) users#update
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
root GET / users#new
users_create GET /users/create(.:format) users#create
users_login GET /users/login(.:format) users#login
【问题讨论】:
-
发布
rake routes命令的结果 -
@RSB 现在按要求添加了。
标签: ruby-on-rails ruby-on-rails-4 routes