Rails 4、如何从控制台获取控制器方法的路径?
In Rails 4, how can I get the path of a controller method from the console?
我正在使用 devise 4.2 和 Rails 4.2。我的 routes.rb 文件中有这个,在命名空间
中
devise_scope :user do
post 'sessions' => 'sessions#create'
delete 'sessions' => 'sessions#destroy'
end
我认为应该映射到这个控制器
class Auth::SessionsController < Devise::SessionsController
layout false
skip_before_action :verify_authenticity_token
end
我想从 Rails 控制台确认此控制器的“创建”方法的路径。我试过这个
my-app(dev)> url_for controller: :auth_sessions, only_path: true
NoMethodError: undefined method `url_for' for main:Object
from (irb):4
from /usr/share/rvm/gems/ruby-2.4.5@my-app/gems/railties-4.2.10/lib/rails/commands/console.rb:110:in `start'
from /usr/share/rvm/gems/ruby-2.4.5@my-app/gems/railties-4.2.10/lib/rails/commands/console.rb:9:in `start'
from /usr/share/rvm/gems/ruby-2.4.5@my-app/gems/railties-4.2.10/lib/rails/commands/commands_tasks.rb:68:in `console'
from /usr/share/rvm/gems/ruby-2.4.5@my-app/gems/railties-4.2.10/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
from /usr/share/rvm/gems/ruby-2.4.5@my-app/gems/railties-4.2.10/lib/rails/commands.rb:17:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
my-app(dev)>
但是出现了上述错误。
您可以使用 app
或直接 Rails.application.routes
:
访问 rails console
中的路由
app.url_for(controller: "auth/sessions", action: :new, only_path: true)
# => "/auth/users/sign_in"
Rails.application.routes.url_for(controller: "auth/sessions", action: :new, only_path: true)
# => "/auth/users/sign_in"
我正在使用 devise 4.2 和 Rails 4.2。我的 routes.rb 文件中有这个,在命名空间
中devise_scope :user do
post 'sessions' => 'sessions#create'
delete 'sessions' => 'sessions#destroy'
end
我认为应该映射到这个控制器
class Auth::SessionsController < Devise::SessionsController
layout false
skip_before_action :verify_authenticity_token
end
我想从 Rails 控制台确认此控制器的“创建”方法的路径。我试过这个
my-app(dev)> url_for controller: :auth_sessions, only_path: true
NoMethodError: undefined method `url_for' for main:Object
from (irb):4
from /usr/share/rvm/gems/ruby-2.4.5@my-app/gems/railties-4.2.10/lib/rails/commands/console.rb:110:in `start'
from /usr/share/rvm/gems/ruby-2.4.5@my-app/gems/railties-4.2.10/lib/rails/commands/console.rb:9:in `start'
from /usr/share/rvm/gems/ruby-2.4.5@my-app/gems/railties-4.2.10/lib/rails/commands/commands_tasks.rb:68:in `console'
from /usr/share/rvm/gems/ruby-2.4.5@my-app/gems/railties-4.2.10/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
from /usr/share/rvm/gems/ruby-2.4.5@my-app/gems/railties-4.2.10/lib/rails/commands.rb:17:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
my-app(dev)>
但是出现了上述错误。
您可以使用 app
或直接 Rails.application.routes
:
rails console
中的路由
app.url_for(controller: "auth/sessions", action: :new, only_path: true)
# => "/auth/users/sign_in"
Rails.application.routes.url_for(controller: "auth/sessions", action: :new, only_path: true)
# => "/auth/users/sign_in"