首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 4应该在方法上设置实例变量或链吗?

Rails 4应该在方法上设置实例变量或链吗?
EN

Stack Overflow用户
提问于 2016-03-31 03:04:36
回答 2查看 94关注 0票数 0

我在Rails 4上,有一个非常简单的问题。

假设你有一个User模型,has_one AccountAccount belongs_to User

在用户显示页面上,我想显示用户属性以及帐户属性。

在users_controller中,我可以这样做:

代码语言:javascript
复制
def show
  @user    = User.find(params[:id])
  @account = @user.account
end

然后在我们看来:

代码语言:javascript
复制
<%= @user.name %> 
<%= @account.id %>

我只需设置用户实例变量:

代码语言:javascript
复制
def show
  @user = User.find(params[:id])
end

并认为:

代码语言:javascript
复制
<%= @user.name %>
<%= @user.account.id %>

这些有什么区别吗?其中之一是“铁路之路”吗?我可能想得太多了,但我只是好奇在这里什么是正确的。

EN

回答 2

Stack Overflow用户

发布于 2016-03-31 03:19:03

我会说,这真的是一个偏好的问题。如果我是编写它的人,我会将它赋值给一个变量,如果它要在视图中多次使用的话。如果只使用一次,那么分配它似乎是多余的。

票数 0
EN

Stack Overflow用户

发布于 2016-03-31 03:32:43

推荐的最佳实践是,每个控制器操作只允许一个实例变量,并且不允许使用@person.account.id (链接)。

请参阅https://robots.thoughtbot.com/sandi-metz-rules-for-developers

使用装饰师是个好主意(例如Draper)。上面的例子太简单了,不能再添加一个创业板。您可以在rails中使用委托。

请参阅http://apidock.com/rails/Module/delegate

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36323399

复制
相关文章

相似问题

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