在 rails 6 上的 ruby 中创建新页面

creating new pages in ruby on rails 6

我创建了一个 rails 6 应用程序,它有两个字段,name_of_the_user 和 user_country,现在只有三个可能的国家 "USA","AUSTRALIA" & "JAPAN" 我想将每个国家/地区的用户移动到新页面。因此,我的 index.html.haml 应该有 "USA"、"AUSTRALIA" 和 "JAPAN" 三个新链接,它们将我重定向到日本页面用户、澳大利亚页面用户和美国页面用户.我是 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

您可以将一些链接添加到同一个索引页面,但将查询参数添加到您的视图:

= 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')

并且在使用时向控制器中的 index 方法添加额外的数据库 where 条件:

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

只有当您的数据库中的国家/地区实际上仅以大写字符存储(如您在问题中所写)时才有效。当它存储为小写或标题化时,您将需要更改查询字符串的格式或清理控制器中的输入。