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オプションを設定してみてくださいtrueprojects

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 に答える