Rails - 保持参数的运行比使用before_action更好吗?

时间:2014-03-16 01:02:48

标签: ruby-on-rails

我完成了' Rails最佳实践' Code School的1级课程,它引入了最佳实践,实例变量不应该被隐藏。

因此,不是使用before_action,而是保持参数的运行更好,如下所示:

def edit
  @tweet = get_tweet(params[:id])
end

def update
  @tweet = get_tweet(params[:id])
end

private
def get_tweet(tweet_id)
  Tweet.find(tweet_id)
end

有人可以解释为什么它比使用before_action更好吗?我无法理解。

感谢。

2 个答案:

答案 0 :(得分:2)

表达的想法似乎是增加实例变量可见性,因此人们不会忘记有一些具有特定名称的浮动。这些可以在项目增长时起到重要作用,并且最终使用多个/嵌套/部分视图,因为变量名称可能会开始冲突。

但更好的机制是完全取消实例变量并改为使用局部变量。那样:

  • 您需要将它们明确地传递给视图,以便您确实知道它们是必需的
  • 本地化他们的影响并防止冲突
  • 让视图自动记录以供日后管理的用户

参考:

答案 1 :(得分:1)

我只是观看了视频,Gregg正在做什么:refactoring并制作get_tweet private它允许您在控制器之间共享公共代码,并进一步防止Rails将其作为控制器上的公共操作。但在处理before_filterAuthorizationLogging时,使用Wizard过滤器操作是很自然的。我希望这有帮助!!