Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在一个视图中显示两个模型的数据_Ruby On Rails - Fatal编程技术网

Ruby on rails 在一个视图中显示两个模型的数据

Ruby on rails 在一个视图中显示两个模型的数据,ruby-on-rails,Ruby On Rails,我有两种型号:AvailableDates-->属于:spec,spec-->有多个:可用日期 现在我有了一个视图,我想在其中显示Spec和AvailableDates中具有相同friend_id属性的数据。我可以用SQL实现这一点,它工作得很好: @invitees = AvailableDate.find_by_sql "SELECT d.friend_id, s.first_name, s.last_name, s.gender, s.birthdate, s.occupation, s.

我有两种型号:AvailableDates-->属于:spec,spec-->有多个:可用日期 现在我有了一个视图,我想在其中显示Spec和AvailableDates中具有相同friend_id属性的数据。我可以用SQL实现这一点,它工作得很好:

@invitees = AvailableDate.find_by_sql "SELECT d.friend_id, s.first_name, s.last_name, s.gender, s.birthdate, s.occupation, s.country, s.city FROM available_dates d, specs s WHERE d.friend_id = s.friend_id AND d.city = 'London'
视图如下所示,包含两个模型的数据:

    <% @invitees.each do |invitee| %>
      <tr>
        <td><%=h invitee.first_name %></td>
        <td><%=h invitee.last_name %></td>
        <td><%=h invitee.gender %></td>
        <td><%=h invitee.birthdate %></td>
      </tr>
    <% end %>

但它只给我朋友的数据。如何从相关的可用日期和规格中获取数据

您可能希望使用
连接
包含
参数来查找ActiveRecord的
方法。查看for
find
,以及解释两者区别的。

完成:include后,您可以访问相关数据,如下所示:

@invitees.each do |invite|
  invite.available_date.city
  invite.spec.first_name
end

谢谢,我研究了:包括和:条件,认为我理解。我会带着我的解决方案回来。
@invitees = Friend.find(:all, :include => [:available_date, :spec], :conditions => ["specs.country = ?", "United Kingdom"])
@invitees.each do |invite|
  invite.available_date.city
  invite.spec.first_name
end