加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails – 一种视图中的多种模型

发布时间:2020-12-17 03:35:20 所属栏目:百科 来源:网络整理
导读:我需要从单个视图访问多个模型.以前,我的links_controller仅用于提供以不同方式排序的链接资源.现在我想包括一个部分(我是假设),它显示按分数排序的最高用户(@users = User.all.sort_by(:score)) 我知道我可以将此代码插入到每个链接操作中并从视图中访问它
我需要从单个视图访问多个模型.以前,我的links_controller仅用于提供以不同方式排序的链接资源.现在我想包括一个部分(我是假设),它显示按分数排序的最高用户(@users = User.all.sort_by(&:score))

我知道我可以将此代码插入到每个链接操作中并从视图中访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型.这可能变得很脏,这种情况有什么技巧吗?

笔记:

>我看到我的应用程序朝着具有动态页面内容的单一格式的方向发展,实质上是典型的Web应用程序.
>我知道before_filter但这看起来很麻烦,考虑到我希望应用程序进入的方向.最终从任何视图访问多个模型.

解决方法

这种事情最好被封装为一个由特定部分运用的辅助方法.例如,如果这是您的部分_user_listing.html.erb:

<% users_by_score.each do |user| %>
   ...
<% end %>

然后,您将在所有相关控制器包含的帮助文件中实现users_by_score方法,如果它是普遍的,则在ApplicationHelper中实现:

def users_by_score
  User.all.sort_by(&:score)
end

在其他MVC系统中,这将被视为具有自己的控制器的子视图,但在Rails中,您可以做的最好的是拥有辅助方法.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读