0

我正在构建一个炼油厂 cms 应用程序,并且正在尝试添加一个替代登录屏幕,该屏幕将使用 .NET Web 服务。然而,虽然使用该服务的代码很简单,但我似乎无法让 rails 或炼油厂确认它的视图确实存在,因此我输入 url 的任何路线都不会将我带到备用日志的视图我不知道为什么我的视图文件位于 /views/sessions/dotnet.html.erb 并且当前我的 session_controller.rb 包含该方法的定义

class SessionsController < ::Devise::SessionsController
   .
   .
   .
  def create
    super
    rescue ::BCrypt::Errors::InvalidSalt, ::BCrypt::Errors::InvalidHash
      flash[:error] = t('password_encryption', :scope => 'users.forgot')
      redirect_to new_user_password_path
  end

  def dotnet
    .
    .
    .
  end
   .
   .
   .
end

并且没有注释行的 routes.rb 文件看起来像:

Quicksmile::Application.routes.draw do
   resources :sessions

   resources :dotnetwrappers

   match "/" => redirect("/new-practices")

end

我已经尝试过这里这里的方法,但它们都没有奏效。如何设置它以便实际上有一个对应于 /views/sessions/dotnet.html.erb 文件的 url?

4

1 回答 1

1

看起来您实际上并没有为 SessionsController#dotnet 添加路由。

你需要类似的东西:

Quicksmile::Application.routes.draw do
  resources :sessions
  get :dotnet_login => "sessions#dotnet", :as => "dotnet_login"

  # ...
end

main_app.dotnet_login_path然后,您可以在代码中使用 URL 帮助main_app.dotnet_login_url程序。

更多细节可以在Rails 路由指南中找到。

于 2012-05-04T17:10:28.360 回答