【译】用局部变量(local variable)替换实例变量(instance variable)

Sunday, July 25, 2010

原文:http://rails-bestpractices.com/posts/27-replace-instance-variable-with-local-variable

在局部视图中, 我们可以直接使用实例变量,但是我们不知道到底哪实例变量被使用,容易混淆,所以在局部视图中使用局部变量更加明确

ps: 不知道这样译过来是否正确, 呵呵

丑陋的...

class PostsController < ApplicationController
  def show
    @post = Post.find(params[:id])
  end
end

<%= render :partial => "sidebar" %>

在这个例子中,局部sidebar可以使用实例变量@post, 但是离开了控制器我们将不了解到底使用了哪个,让我们用局部变量来代替它

重构...

#<%= render :partial => "sidebar", :locals => { :post => @post } %>
<%= render "sidebar", :post => @post %>

现在我们在局部视图中使用了局部变量, 看上去简单干净清楚多了!~

This entry was tagged Rails and Best-Practices

comments powered by Disqus

© 2009-2013 lxneng.com. All rights reserved. Powered by Pyramid

go to Top