首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby on Rails,How to add projects to users/show.html.erb with has_many names :through blueprints

Ruby on Rails,How to add projects to users/show.html.erb with has_many names :through blueprints
EN

Stack Overflow用户
提问于 2012-12-09 10:41:55
回答 1查看 281关注 0票数 0

对于用户有蓝图的每个项目,我希望显示项目名称和到project_path的链接。谢谢。

这些是我的ActiveRecords

代码语言:javascript
复制
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

我的用户显示控制器

代码语言:javascript
复制
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

My Views/Users/Show.html.erb表

代码语言:javascript
复制
    <table>
      <tr>
        <% @projects.each do |p| %>
          <td><%= p.name %></td>
        <% end %>
      </tr>
    </table>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-09 11:27:48

对于用户有蓝图的每个项目,我希望显示项目名称和到project_path的链接。

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

代码语言:javascript
复制
<table>
  <tbody>
    <% @user.blueprints.each do |blueprint| %>
      <tr>
        <td><%= link_to blueprint.project.name, project_path(blueprint.project) %></td>
      </tr>
    <% end %>
  </tbody>
</table>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13784154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档