1

我在下面提供我的活动记录。在 view/users/show 我想通过蓝图显示用户正在处理的任何项目。当用户向一个项目添加多个蓝图时,该项目会多次显示。我尝试了一些 validate_uniqueness 选项无济于事。

class Blueprint < ActiveRecord::Base
  attr_accessible :id, :name, :project_id, :user_id, :loc
  belongs_to :user
  belongs_to :project
  has_many :comments
end

class Project < ActiveRecord::Base
  attr_accessible :id, :name
  has_many :blueprints
  has_many :users, :through => :blueprints
  has_many :comments
end

class User < ActiveRecord::Base
  attr_accessible :id, :name
  has_many :blueprints
  has_many :projects, :through => :blueprints
end

这是显示同一项目的多个值的视图代码。

    <% @user.blueprints.each do |blueprint| %>
      <tr>
        <td><%= link_to blueprint.project.name, project_path(blueprint.project) %></td>
      </tr>
    <% end %>

谢谢!

4

2 回答 2

2

尝试将uniq选项设置为这样true的用户projects关系

class User < ActiveRecord::Base
  has_many :projects, :through => :blueprints, :uniq => true
end
于 2012-12-18T22:04:47.643 回答
1

既然您已经在用户中拥有项目关联,为什么不循环浏览用户的项目而不是蓝图。

<% @user.projects.each do |project| %>
      <tr>
        <td><%= link_to project.name, project_path(project) %></td>
      </tr>
    <% end %>
于 2012-12-19T01:04:32.500 回答