Ruby on rails Ruby中的复杂关系-跨多个表显示数据

Ruby on rails Ruby中的复杂关系-跨多个表显示数据,ruby-on-rails,ruby,Ruby On Rails,Ruby,我设计了一个由20多个表组成的应用程序,并利用RubyonRails。 我正在使用用户登录的身份验证系统。我想向用户显示,当用户登录时,可以在许多表中找到与他相关的信息,这些表之间有所有可能的关系。我如何在RoR中实现这一点?我应该考虑使用视图,多个连接吗?我没有设法从一个模型中获得更多的信息,而不仅仅是从两个表中获得信息,在表设计中使用了经典的方法,如“有很多”、“通过”等 你能分享你的知识吗 谢谢 我假设您的用户模型与包含相关信息的所有表都有关系 假设这样,您可以在UsersControll

我设计了一个由20多个表组成的应用程序,并利用RubyonRails。 我正在使用用户登录的身份验证系统。我想向用户显示,当用户登录时,可以在许多表中找到与他相关的信息,这些表之间有所有可能的关系。我如何在RoR中实现这一点?我应该考虑使用视图,多个连接吗?我没有设法从一个模型中获得更多的信息,而不仅仅是从两个表中获得信息,在表设计中使用了经典的方法,如“有很多”、“通过”等

你能分享你的知识吗


谢谢

我假设您的用户模型与包含相关信息的所有表都有关系


假设这样,您可以在UsersController中有一个操作和相应的视图。在操作中,您可以找出谁是当前连接的用户,然后从相关模型中获取所需的所有数据。将这些数据返回到视图中,并根据您的喜好进行渲染。

我认为您的问题过于笼统,但这里有一些想法……假设您正在制作传统的Rails应用程序

“我应该考虑使用视图吗?”

视图是用户在传统rails应用程序中看到的。因此,如果要向用户显示数据,请使用视图显示控制器中可用的数据。控制器中的每个操作都将从模型中获取数据,并具有相应的视图

因此,要显示属于用户的图书,您可能需要一个图书控制器。用户登录后,“Books”控制器中有一个“index”操作,上面写着@user\u Books=@user.Books。在这种情况下,@user将是您的身份验证系统中的用户对象。一个用户会有很多书,一本书可能会有很多用户。然后在views/books/index.html.erb文件中,您有如下内容:

<ul>
<% @user_books.each do |b| %>
  <li> <%= b.name %> </li>
<% end %>
</ul>
打印书名列表

连接是由Rails自动完成的,所以您还不必担心它。但是,如果你的应用程序变得非常大,并且查询非常复杂,你可能必须重写SQL语句以提高可伸缩性……但这显然是一个很好的问题


希望这有帮助

我指的是SQL表视图与RoR的集成,而不是视图组件。对不起,误会了。