为什么在模板(视图文件)中避免使用实例变量?

时间:2013-12-10 07:32:10

标签: ruby ruby-on-rails-4

为什么在浏览器上显示数据时在模板中使用实例变量不好?

例: 的控制器

def show_data
 @user = User.all
end

show_data.js.erb

$('#popup_div').html("<%= escape_javascript(render 'view_form', :user => @user) %>");

_view_form.html.erb

<%= user.name %>

什么是user?我们可以在模板中调用实例(@user),如:

<%= @user.name %>

<%= user.name %><%= @user.name %>之间有什么区别?我们为什么要:user => @user

1 个答案:

答案 0 :(得分:3)

将变量传递给partials比在许多方面使用实例变量要好。一个原因是可以从任何控制器使用partials(DRY原则),因此当您可能没有view_form定义或以不同方式定义时,您可以稍后从另一个控制器呈现@user