如何添加面包屑以在 rails 上设计 ruby

how to add breadcrumb to devise ruby on rails

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

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

如何将这些面包屑添加到设计中的用户 "pages"?

谢谢, 乔

您可以通过以下方式生成设计视图:

rails generate devise:views users

确保将 users 替换为您的用户模型名称,如果它不是 User(例如 AdminManager 等)

然后您可以向这些视图中添加任何您需要显示面包屑的内容。

我在我的项目中使用 gem breadcrumbs on rails with devise。

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

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 布局中,我添加了面包屑(就在 <%= yield %> 上方)

<%= render_breadcrumbs %>

我刚刚测试了它,你可以从屏幕截图中看到它的工作原理。

已编辑:

如果您想将面包屑添加到 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'
  }

请告诉我它是否适合你。