这是一个“最佳实践”的问题,但即使它不是一个好的实践,我仍然想知道进行这种编码的含义——在可用性、可扩展性方面
根据http://rails-bestpractices.com/posts/24-move-code-into-controller
您不应该从视图中实例化变量,而应先在控制器中进行
所以<% @posts = Post.find(:all) %>
应该 @posts = Post.find(:all)
在相应的控制器中而不是它
在我的代码上运行 rails best practice gem 时,我在一行看起来像
<% @msgs_by_sender.keys.each do |uid| %>
<% @user = User.find(uid) %>
这基本上uid
是从控制器中先前计算的数组的数组中获取的 user_id。然后,一旦我获得了 uid,我就会获得 @user,因此使用起来更容易
我的问题是 - 因为我知道这段代码有效并且没有爆炸,我不介意让它保持原样。但是,用这种线代替有什么长期优势吗?
@users = User.find(@msgs_by_sender.keys)