首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ransack中关联模型的访问属性

Ransack中关联模型的访问属性
EN

Stack Overflow用户
提问于 2018-05-02 14:49:14
回答 1查看 552关注 0票数 0

我有一个仪表板,显示从用户和保姆模型获取的结果。

在我的user.rb里

代码语言:javascript
复制
User has_many :nannies

nanny.rb有

代码语言:javascript
复制
Nanny belongs_to :user

用户有一些基本属性(姓名,电子邮件,电话等)保姆现在有其他属性(性别,时间,天数等),我有这些行来实现搜索和获取用户根据过滤器。控制器的索引方法是

代码语言:javascript
复制
@users = User.ransack(params[:q])
@people = @users.result

我可以根据保姆的属性过滤结果。视图中的过滤器表单如下所示

代码语言:javascript
复制
<%= 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 %>

结果显示如下

代码语言:javascript
复制
    <% @people.each do |test| %>
      <%= test.id %>
      <%= test.firstname %>
      <%= test.email %>
      <%= test.hours %>
    <% end %>

我得到一个错误‘未定义的方法小时为用户’(这显然属于保姆模型)。

我需要能够做到以下几点

  1. 加载所有用户及其相关保姆
  2. 运行Ransack并过滤掉结果
  3. 显示视图中所有关联模型的所有属性。

希望在这个问题上提供任何指导或纠正。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-02 15:20:18

假设您的问题是如何修复undefined method hours for User

下面的解决方案并不是真正的Ransack“东西”,而是更多的Rails“东西”:

代码语言:javascript
复制
<% @people.each do |test| %>
  <%= test.id %>
  <%= test.firstname %>
  <%= test.email %>
  <% test.nannies.each do |nanny| %>
    <%= nanny.hours %>
  <% end %>
<% end %>
  • 您需要循环遍历属于test (其中的test是一个User记录)的每个hours,并且只有当您可以访问每个nannyhours值时,才需要循环遍历它。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50137517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档