Ссылка на Rails не работает в Trailbalzer::cell

Я использую ячейку для рендеринга панели навигации для current_user devise. Но я пытаюсь отобразить страницу, я получаю сообщение об ошибке. Я использую rails 7 и ruby 3.0.2

Ошибка

undefined method `new_user_session_path' for #<Navigation::Cell::Show:0x00007fac566e3570 @model=#<User id: 1, email: "email@gmail.com", first_name: "Otto", last_name: "Otto", phone: nil, birthday: nil, gender: nil, city: nil, street: nil, house: nil, apartment: nil, created_at: "2023-01-07 18:10:10.925669000 +0000", updated_at: "2023-01-07 18:30:10.207258000 +0000">, @options = {}>

Мое приложение.html.erb

<body>
    <%= Navigation::Cell::Show.(current_user) %>

    <%= yield %>
</body>

Gemfile

gem 'trailblazer-cells', '~> 0.0.3'
gem 'trailblazer-rails', '~> 2.4', '>= 2.4.3'
gem 'cells-erb', '~> 0.1.0'

Navigation::Cell:Show (app/concepts/navigation/cell/show.rb)

class Navigation::Cell::Show < Trailblazer::Cell
  include Devise::Controllers::Helpers
  include ActionView::Helpers::UrlHelper
  include Cell::Erb

  def show
    render
  end

  private

  def username
    "#{model.first_name} #{model.last_name}"
  end

  def current_user
    model
  end

  def profile_link
    link_to username, new_user_session_path(current_user.id)
  end

  def logout_link
    link_to 'Log Out', destroy_user_session_path, method: :delete
  end

  def login_link
    link_to 'Login', new_user_session_path
  end

  def registration_link
    link_to 'Registration', new_user_registration_path
  end
end

И мой вид (app/concepts/navigation/view/show.erb)

<nav>
  <div>
    <% if current_user %>
      <h1><%= profile_link %></h1>
      <%= logout_link %>
    <% else %>
      <%= login_link %>
      <%= registration_link %>
    <% end %>
  </div>
</nav>

Пытаюсь включить include ActionView::Helpers::UrlHelper не получилось.

Когда я добавляю драгоценный камень gem 'cells-rails' в приложение rails, у меня возникает другая ошибка, которая выглядит так:

Ошибка

Конечные и Readonly классы в PHP
Конечные и Readonly классы в PHP
В прошлом, когда вы не хотели, чтобы другие классы расширяли определенный класс, вы могли пометить его как final.
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
БЭМ: Конвенция об именовании CSS
БЭМ: Конвенция об именовании CSS
Я часто вижу беспорядочный код CSS, особенно если проект большой. Кроме того, я совершал эту ошибку в профессиональных или личных проектах и...
Революционная веб-разработка ServiceNow
Революционная веб-разработка ServiceNow
В быстро развивающемся мире веб-разработки ServiceNow для достижения успеха крайне важно оставаться на вершине последних тенденций и технологий. По...
Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?
Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?
Заголовок веб-страницы играет наиболее важную роль в SEO, он помогает поисковой системе понять, о чем ваш сайт.
Конфигурация Jest в angular
Конфигурация Jest в angular
В этой статье я рассказываю обо всех необходимых шагах, которые нужно выполнить при настройке jest в angular.
1
0
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваша ошибка

undefined method `new_user_session_path'

Этот метод из помощников URL-адресов маршрутов (названный помощник маршрута)

Вам понадобится эта строка дополнительно:

include Rails.application.routes.url_helpers

Другие вопросы по теме