Ruby on Rails,如何使用has_many名称向users / show.html.erb添加项目:通过蓝图

时间:2012-12-09 02:41:55

标签: ruby-on-rails templates activerecord

对于用户具有蓝图的每个项目,我想显示项目名称并链接到project_path。感谢。

这些是我的ActiveRecords

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

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

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

我的用户显示控制器

def show
  @user = User.find(params[:id])
  @project = Project.find(params[:id])
  respond_to do |format|
    format.html # show.html.erb
    format.json { render json: @user }
  end
end

我的观看/用户/ Show.html.erb表

    <table>
      <tr>
        <% @projects.each do |p| %>
          <td><%= p.name %></td>
        <% end %>
      </tr>
    </table>

1 个答案:

答案 0 :(得分:0)

  

对于用户具有蓝图的每个项目,我想显示项目名称并链接到project_path。

对于这些要求,您可以从操作中删除@project分配。您需要查看blueprints的{​​{1}}关系,并为每个@user获取关联的project

blueprints