我创建了一个带有脚手架的rails 6应用程序,该应用程序有两个字段,name_of_the_user和user_country,现在只有三个可能的国家"美国","澳大利亚"和"日本" 我想将用户从每个国家/地区移动到新页面。因此,我的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')
使用时,将额外的数据库where
条件添加到控制器中的index
方法:
def index
@users = User.all
@users = @users.where(country: params[:country]) if params[:country].present?
end
仅当您数据库中的国家/地区实际上仅以大写字符存储时,这才有效,就像您在问题中写的那样。当它存储为大写或标题时,您需要更改查询字符串的格式或清理控制器中的输入。