多个控制器在一个视图Ruby on Rails中

时间:2011-11-30 11:16:43

标签: ruby-on-rails model-view-controller view controller

我开始学习RoR并且已经做了一系列的教程,但是在一个视图中有一系列控制器遇到了绊脚石。例如。我有一个用户控制器和一个技能控制器。使用belongs_to和has_many技能等技能与用户相关联。我在用户视图的索引上,无法确定如何将与用户关联的技能放入该视图中。

我看到它的方式是我需要创建一个基于值调用数据库的方法。如何在视图中调用此方法?对不起,如果这对某些人来说似乎很明显,但我只是想掌握它,任何帮助都会非常感激。

3 个答案:

答案 0 :(得分:1)

当我在使用rails应用时,我倾向于一个控制器来很多视图,而不是相反。

我认为你想要的是控制器中指向同一视图的两种方法。要实现此目的,请在与视图命名不同的方法中,调用render "view"。或者,如果两个方法都与目标视图具有不同的名称,则在两个方法中调用渲染“view”。

答案 1 :(得分:1)

<% @users.each do |user| %>
    <h2><%= user.name %> </h2>
    <h3>Skills</h3>
    <ul>
        <% user.skills.each do |skill| %>
            <li> <%= skill.name %> </li>
        <% end %>
    </ul>
<% end %>

现在您的索引页面上显示了用户和技能。

答案 2 :(得分:0)

您似乎在用户控制器中添加了非REST资源。

你应该做的是为模型组合创建一个控制器,例如仪表板控制器,诀窍是找到一个有意义的名称。在您的情况下,您可能必须创建UserSkill控制器。

这样您就可以保留5个REST动作。