【问题标题】:how do I link to a page elsewhere in the app from a Devise page?如何从设计页面链接到应用程序中其他地方的页面?
【发布时间】:2011-11-29 19:35:35
【问题描述】:

我的应用程序使用 Devise 进行登录。我根据 wiki 安装了它并让它正常工作。我最近在“http://127.0.0.1:3000/tos”向我的应用程序添加了一个“服务条款”页面,它通过静态控制器路由:

match ':action' => 'static#:action'

我在 application.html.erb 文件的底部放置了一个链接。我希望在每一页的底部都有一个指向服务条款和隐私政策的链接。但是当我转到users/sign_in 页面时,它不会显示到 TOS 页面的链接——而是出现错误(如下)。

我已经删除了我的应用程序中的所有路由,除了这些(为了追踪这个问题):

   root :to => 'home#index'
   #devise routes
   devise_for :users, :admins
   #static
   match ':action' => 'static#:action'

链接指定如下:<%= link_to "Terms of Service", :controller => "static", :action => "tos" %>

错误是:

No route matches {:controller=>"devise/static", :action=>"tos"}

所以设计有点妨碍我路由到这个静态 页。如何指定转到应用程序根目录的路线 从设计开始?

更新:短期内,答案是硬编码: <%= link_to "Terms of Service", "/tos" %>——虽然不是一个理想的答案。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 devise routes


    【解决方案1】:

    除了生成视图

    rails generate devise:views
    

    您需要将设计配置为使用范围视图而不是 gem 中的视图

    config.scoped_views = "true” 
    

    在 config/initializers/devise.rb 文件中

    【讨论】:

    • scoped_views 设置为 false(默认),但更改它并不能解决问题。我已经有了所有的设计意见(确认、邮件等)。
    【解决方案2】:

    这应该可以工作:

    match ':action' => 'static#:action', :as => :static

    你的链接应该是这样生成的:

    <%= link_to "Terms of Service", static_path(:action => 'tos') %>

    【讨论】:

    • 我不这么认为,静态路由正在工作,只有当我尝试从设计页面创建指向静态页面的链接时它才会中断。
    【解决方案3】:

    我已经多次收到此错误。我通过将路由添加到设计路由块来修复它

    像这样(在你的情况下) 更新添加了不同的路线尝试

    devise_for :users, admins do
      match '/:action' => 'static#:action'     
    end
    
    match '/:action' => 'static#:action'
    
    devise_for :users, admins do
          match '/tos' => 'static#tos'     
        end
    
        match ':action' => 'static#:action'
    

    我也将路线留在街区外。不是很干,但它有效。

    【讨论】:

    • 嗯,这似乎是个好主意,但我仍然收到错误消息。将新匹配添加到 devise_for 块后出现同样的错误。
    • 好的。形成错误消息,很明显您需要块中的路线。我已经更新了帖子。试试看。
    猜你喜欢
    • 1970-01-01
    • 2018-08-01
    • 2011-11-03
    • 1970-01-01
    • 2015-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多