如何添加面包屑来设计轨道上的红宝石

时间:2016-10-11 15:59:53

标签: ruby-on-rails devise breadcrumbs

我想在注册和登录表单(设计版)中添加面包屑,但我不知道在哪里将面包屑添加到设计控制器中?

我有从devise :: RegistrationsController继承的registrations_controller,并添加了一个面包屑来编辑'。我尝试创建一个users__controller(继承Devise :: UsersController),但这给了我一个循环引用错误。

如何将这些面包屑添加到用户"页面"在设计?

谢谢, 乔

2 个答案:

答案 0 :(得分:2)

我在项目中使用了宝石breadcrumbs on rails和设计。

如果您还没有使用设计制作用户模型,那么首先:

rails g devise User
rake db:migrate
rails generate devise:views users

我的registration_controller.rb如下所示:

# app/controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
    add_breadcrumb "home", :root_path
    add_breadcrumb "contact", :contacts_path
end

我更改了路线:

devise_for :users, :controllers => { registrations: 'registrations' }

在application.html.erb布局中,我添加了面包屑(位于&lt;%= yield%&gt;上方)

<%= render_breadcrumbs %>

我刚测试过它,它可以从屏幕截图中看到。

enter image description here

已编辑:

如果您想将面包屑添加到Devise gem的其他页面,例如忘记密码页面,您可以创建新的控制器:

# app/controllers/passwords_controller.rb
class PasswordsController < Devise::PasswordsController
  add_breadcrumb "home", :root_path
  add_breadcrumb "contact", :contacts_path
end

并更新您的路线:

  devise_for :users, controllers: {
    registrations: 'registrations',
    passwords: 'passwords'
  }

如果它适合您,请告诉我。

答案 1 :(得分:0)

您可以使用以下命令生成设计视图:

rails generate devise:views users

如果用户型号名称不是users(例如UserAdmin等),请务必将Manager替换为您的用户型号名称。

然后,您可以将这些视图添加到显示面包屑的任何内容。