繁体   English   中英

在 Rails 4 中,如何从控制台获取控制器方法的路径?

[英]In Rails 4, how can I get the path of a controller method from the console?

我将设计 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 console的路由Rails.application.routes

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"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM