рельсы 5 - отображать разные ссылки в зависимости от страницы - PullRequest
1 голос
/ 03 августа 2020

У меня есть 4 ссылки на странице (платья, юбки, рубашки, шляпы), и я хочу, чтобы они всегда были разными в зависимости от страницы. Допустим, мы нажимаем на шляпы, и ссылки там будут рубашки, платья, юбки, поэтому текущая категория, в которой мы находимся, не будет отображаться.

Я нашел здесь нечто похожее [1]: Render разные показывать страницы с категорией в ruby на рельсах

Но это не совсем то, что я хочу, так как мне нужно отобразить несколько ссылок (а не одну). Я думаю, что нужно создать 4 разных партиала и отобразить 3 ссылки, если params = на тот, который мы не хотим отображать. Это хорошая мысль или есть лучший способ сделать это?

1 Ответ

1 голос
/ 03 августа 2020

Вы не предоставили точный код, поэтому, исходя из того, что, как я предполагаю, у вас будет, вы можете сделать что-то вроде этого:

# Somewhere in your controller
def index # or any action really
  ...
  @current_category = Category.find(params[:category_name]) " # (Or however you want to refer to your category object.
  @all_categories = Category.all # (Or an array of plain strings, which would then better be set in some before_action hook so it is present in each of your different pages.)
  ...
end

# In your view

(@all_categories - @current_category).each do |category|
  <%= render "categories/link_card", category: category %>
end

А затем в ваших частичных categories/_link_card.html.erb вы можете код для отображения ссылки на любую категорию с использованием входной переменной category для получения точных сведений о вашей категории. (Например, имя, URL).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...