Уценка красной карточки и тег пользователя с ссылкой на путь_пользователя - PullRequest
1 голос
/ 03 мая 2020

Я улучшил уценку таким образом, чтобы создать ссылку на страницу пользователя. Как видите, я проверяю, существует ли пользователь, и создаю ссылку на его страницу. Если он не существует, я использую поиск

class MarkdownRenderer < Redcarpet::Render::HTML
  include Rails.application.routes.url_helpers

  def paragraph(text)
    text.gsub! (/@(\w+)/) do |match|
      user = User.find_by_username($1)
      if user != nil
        link_to match, user_path($1)
      else
        link_to match, search_path(search: { author: $1 })
      end
    end
    text
  end

Но он говорит мне

 No route marches {: action=>"show", : controller=>"users", :locale=>"Luca"} missing required keys: [:id]

как это возможно? $ 1 - мое имя пользователя.

Я также пытался заменить

    link_to match, user_path($1)

на

    link_to match, user_path(user.username)

, но у меня та же проблема.

Содержимое routes.rb:

devise_for :users, controllers: {
  sessions: 'sessions'
}
authenticated do
  scope :users do
    resources :options, as: :user_options, only: [:index]
    get :subscriptions, to: 'me#followed_pages', as: :user_followed_pages
    get :events, to: 'me#event_subscriptions', as: :user_event_subscriptions
  end
end
resources :users, only: :show

Как исправить?

...