ruby-on-rails - 在 View 中渲染 Rails 模型关联

标签 ruby-on-rails

我有以下三个表格:

blogs (id, name, description)

user_blogs (id, user_id, blog_id)

users (id, email, gender)

我正在遍历用户,我想显示他们所属的所有 user_blogs。在 View 中执行此操作的最佳做​​法是什么?我已经有了下面的代码。现在,我想添加一个显示基于 user_blogs 关联的 blogs.name 列表的列。

  <% @users.each do |user| %>
    <tr>
      <td><%= user.id %></td>
      <td><%= user.custom_id %></td>
      <td><%= user.email %></td>
    </tr>
  <% end %>

最佳答案

我认为以下方法可行:

  <% @users.each do |user| %>
    <tr>
    <td><%= user.id %></td>
    <td><%= user.custom_id %></td>
    <td><%= user.email %></td>
    <td>
      <ul>
        <% user.user_blogs.blog.each do |blog| %>
          <li><%= blog.name %></li>
        <% end %>
      </ul>
    </td>
    </tr>
  <$ end %>

但是(假设您的关联设置正确),如果您在用户类中放入以下内容:

has_many :user_blogs
has_many :blogs, through: :user_blogs

您可以删除 user_blogs,并在您的 View 中使用以下内容。

  <% @users.each do |user| %>
    <tr>
    <td><%= user.id %></td>
    <td><%= user.custom_id %></td>
    <td><%= user.email %></td>
    <td>
      <ul>
        <% user.blogs.each do |blog| %>
          <li><%= blog.name %></li>
        <% end %>
      </ul>
    </td>
    </tr>
  <$ end %>

关于ruby-on-rails - 在 View 中渲染 Rails 模型关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17116148/

相关文章:

ruby-on-rails - RSpec - 获取描述类

mysql - 使用 activerecord 时 Time.now 的不同值

ruby-on-rails - Rails Migration 更改列以使用 Postgres 数组

ruby-on-rails - Rails 3.2 具有相同模型名称的多个数据库连接

ruby-on-rails - Rspec 主题!改变 before block 的 "position"

ruby-on-rails - 唯一性验证不适用于 has_many :though association on rails 5

ruby-on-rails - Ruby:如何将多字节字符表示为用于 httparty 消费的百分比转义八位字节

mysql - PATH 变量中的多个应用程序

ruby-on-rails - 为什么我们在 Rails 的 new action 下声明 @page = Page.new?

ruby-on-rails - 为浅层路由寻求最佳 RestKit/CoreData 映射和 JSON 结构的建议