ruby on rails - 在控制器中执行循环

时间:2013-11-28 18:16:45

标签: ruby-on-rails

我想显示属于一个给定项目的每个文件(关系工作正常,可以使用Rails控制台进行检查)。 这是我的'Project'控制器,我可能需要一个do循环(循环遍历每个文件,1个项目)但我不确定:

def show
@project = Project.find(params[:id])
@pfile = Project.find(params[:id]).Pfiles.find(:all)

respond_to do |format|
  format.html # show.html.erb
  format.xml  { render :xml => @project }
  format.xml  { render :xml => @pfile }
end
end

这是我的“项目”视图:

  <p id="notice"><%= notice %></p>

<p>
  <b>Name:</b>
  <%= @project.name %>
</p>

<p>
  <b>Description:</b>
  <%= @project.description %>
</p>

<p>
  <b>Files:</b>
  <%= @project.pfile.name %>
</p>

<%= link_to 'Edit', edit_project_path(@project) %> |
<%= link_to 'Back', projects_path %>

谢谢:)

2 个答案:

答案 0 :(得分:0)

如果关系设置正确,您可以这样做:

控制器

@pfiles = @project.pfiles

视图

<p>
  <b>Files:</b>
  <% @pfiles.each do |pfile| %>
    <%= pfile.name %>
  <% end %>
</p> 

答案 1 :(得分:0)

更容易......依靠铁轨的魔力。

控制器中的

@project = Project.find(params[:id])
@pfiles = @project.pfiles

然后在视图中

<b>Files:</b>
<%= render @pfiles %>

然后在views / pfiles / _pfile.html.erb

<%= pfile.name %>