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

发布于 2024-12-19 06:51:04 字数 227 浏览 1 评论 0原文

我开始学习 RoR 并一直在做一系列教程,但在一个视图中拥有一系列控制器方面遇到了障碍。例如,我有一个用户控制器和一个技能控制器。使用belongs_to和has_many技能等将技能与用户相关联。我位于用户视图的索引上,无法弄清楚如何将与用户相关的技能放入该视图中。

我认为我需要创建一个基于值调用数据库的方法。我如何在视图内调用这个方法?抱歉,如果这对某些人来说似乎是显而易见的,但我刚刚开始掌握它,任何帮助将不胜感激。

I am starting to learn RoR and have been doing a range of tutorials but have hit a stumbling block regarding having a range of controllers in one view. E.g. I have a User controller and a Skill Controller. Skill is associated to the User using belongs_to and has_many skills ect. I am on the index of the user view and cant work out how to put the skills associated with the user into that view.

The way I see it is i will need to create a method that calls the database based on a value. How can i call this method inside the view? Sorry if this seems obvious to some people but I am just getting to grips with it and any help would be much appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

甜嗑 2024-12-26 06:51:04

当我制作 Rails 应用程序时,我倾向于使用一个控制器来控制许多视图,而不是相反。

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

When I'm doing rails apps, I tend to have one controller to many views, not the other way round.

What I think you want is two methods in your controller which point to the same view. To achieve this, in the method that isn't named the same as your view, call render "view". Or, if both the methods have different names from your target view, call render "view" in both of them.

不再让梦枯萎 2024-12-26 06:51:04
<% @users.each do |user| %>
    <h2><%= user.name %> </h2>
    <h3>Skills</h3>
    <ul>
        <% user.skills.each do |skill| %>
            <li> <%= skill.name %> </li>
        <% end %>
    </ul>
<% end %>

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

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

Now you have users and skills being show at your index page.

年少掌心 2024-12-26 06:51:04

看来您正在用户控制器中添加非 REST 资源。

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

这样您将保留 5 个 REST 操作。

it seems like you are adding non-REST resources in your users controller.

what you should be doing is create a controller for a combination of models, for example a dashboard controller, the trick is to find a name that makes sense. In your case you might have to create a UserSkill controller.

This way you will keep the 5 REST actions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文