在 Ransack 中访问关联模型的属性
Access attributes of associated models in Ransack
我有一个仪表板显示从用户和保姆模型中获取的结果。
在我的user.rb中,我有
User has_many :nannies
nanny.rb有
Nanny belongs_to :user
用户有一些基本属性(姓名、电子邮件、phone 等)
保姆还有其他属性(性别、小时、天数等)
现在,我有这些行来实施 Ransack 并根据过滤器获取用户。控制器的索引方法是
@users = User.ransack(params[:q])
@people = @users.result
我可以根据 Nanny 的属性过滤出结果。视图中的过滤形式是这样的
<%= search_form_for @users do |f| %>
<%= f.label :firstname_cont %>
<%= f.search_field :firstname_cont %>
<%= f.label :lastname_cont %>
<%= f.search_field :lastname_cont %>
<%= f.label :role_eq %>
<%= f.search_field :role_eq %>
<%= f.label :nannies_gender_cont %>
<%= f.search_field :nannies_gender_cont %>
<%= f.label :nannies_hours_eq %>
<%= f.search_field :nannies_hours_eq %>
<%= f.submit %>
<% end %>
结果是这样显示的
<% @people.each do |test| %>
<%= test.id %>
<%= test.firstname %>
<%= test.email %>
<%= test.hours %>
<% end %>
我收到一个错误'undefined method hours for User'(显然属于 Nanny 模型)。
我需要能够实现以下目标
加载所有用户及其关联的保姆
运行 搜索并筛选出结果
在视图中显示所有关联模型的所有属性
非常感谢本期中的任何 guidance/correction。
假设您的问题是如何修复 undefined method hours for User
:
以下解决方案并不是真正的 Ransack "thing",而只是 Rails "thing":
<% @people.each do |test| %>
<%= test.id %>
<%= test.firstname %>
<%= test.email %>
<% test.nannies.each do |nanny| %>
<%= nanny.hours %>
<% end %>
<% end %>
- 您需要遍历属于
test
的每个 nanny
(其中有一条 User
记录),并且只有当您可以访问 hours
时才从那里开始每个 nanny
的值
我有一个仪表板显示从用户和保姆模型中获取的结果。
在我的user.rb中,我有
User has_many :nannies
nanny.rb有
Nanny belongs_to :user
用户有一些基本属性(姓名、电子邮件、phone 等) 保姆还有其他属性(性别、小时、天数等) 现在,我有这些行来实施 Ransack 并根据过滤器获取用户。控制器的索引方法是
@users = User.ransack(params[:q])
@people = @users.result
我可以根据 Nanny 的属性过滤出结果。视图中的过滤形式是这样的
<%= search_form_for @users do |f| %>
<%= f.label :firstname_cont %>
<%= f.search_field :firstname_cont %>
<%= f.label :lastname_cont %>
<%= f.search_field :lastname_cont %>
<%= f.label :role_eq %>
<%= f.search_field :role_eq %>
<%= f.label :nannies_gender_cont %>
<%= f.search_field :nannies_gender_cont %>
<%= f.label :nannies_hours_eq %>
<%= f.search_field :nannies_hours_eq %>
<%= f.submit %>
<% end %>
结果是这样显示的
<% @people.each do |test| %>
<%= test.id %>
<%= test.firstname %>
<%= test.email %>
<%= test.hours %>
<% end %>
我收到一个错误'undefined method hours for User'(显然属于 Nanny 模型)。
我需要能够实现以下目标
加载所有用户及其关联的保姆
运行 搜索并筛选出结果
在视图中显示所有关联模型的所有属性
非常感谢本期中的任何 guidance/correction。
假设您的问题是如何修复 undefined method hours for User
:
以下解决方案并不是真正的 Ransack "thing",而只是 Rails "thing":
<% @people.each do |test| %>
<%= test.id %>
<%= test.firstname %>
<%= test.email %>
<% test.nannies.each do |nanny| %>
<%= nanny.hours %>
<% end %>
<% end %>
- 您需要遍历属于
test
的每个nanny
(其中有一条User
记录),并且只有当您可以访问hours
时才从那里开始每个nanny
的值