将新页面操作添加到Refinery中的会话支架

时间:2012-05-04 16:31:38

标签: ruby-on-rails refinerycms

我正在构建一个炼油厂cms应用程序,我正在尝试在屏幕上添加一个使用.NET Web服务的备用日志。然而,虽然使用服务的代码很简单,但我似乎无法通过轨道或炼油厂来确认它的视图实际存在,因此我输入到URL的路径不会将我带到视图中备用登录,我无法弄清楚原因。我视图的文件位于/views/sessions/dotnet.html.erb,目前我的sessions_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

我尝试了herehere方法,但都没有奏效。 如何设置以便实际存在与/views/sessions/dotnet.html.erb文件相对应的网址?

1 个答案:

答案 0 :(得分:1)

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

你需要这样的东西:

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

  # ...
end

然后,您可以在代码中使用网址助手main_app.dotnet_login_pathmain_app.dotnet_login_url

可在Rails Routing Guide找到更多详情。