создание новых страниц в ruby на рельсах 6 - PullRequest
0 голосов
/ 29 мая 2020

Я создал приложение rails 6 с шаблоном, в котором есть два поля, name_of_the_user и user_country, теперь есть только три возможных страны: «США», «АВСТРАЛИЯ» и «ЯПОНИЯ». Я хочу переместить пользователей из каждой страны в новую страница. В результате мой index. html .haml должен иметь три новые ссылки для «США», «АВСТРАЛИЯ» и «ЯПОНИЯ», которые перенаправляют меня на пользователей страницы Японии, пользователей страницы Австралии и пользователей страницы США. Я новичок в ruby и не могу найти для этого никакого решения.

%h1 USER
= link_to 'New User', new_user_path
%table
 %thead
  %tr
  %th Name 
  %th Country

%tbody
- @users.each do |user|
  %tr
    %td= link_to user.name,user
    %td= user.country

1 Ответ

2 голосов
/ 29 мая 2020

Вы можете просто добавить несколько ссылок на ту же страницу индекса, но с параметрами запроса к вашему представлению:

= link_to 'All Users', users_path
= link_to 'USA', users_path(country: 'USA')    
= link_to 'Australia', users_path(country: 'AUSTRALIA')
= link_to 'Japan', users_path(country: 'JAPAN')

И при использовании добавьте дополнительные условия where базы данных в свой метод index в controller:

def index
  @users = User.all
  @users = @users.where(country: params[:country]) if params[:country].present?
end

Это будет работать, только если страна в вашей базе данных фактически хранится только в верхнем регистре, как вы написали в своем вопросе. Когда он хранится в нижнем регистре или с заголовком, вам нужно будет изменить формат строки запроса или очистить ввод в вашем контроллере.

...