Ruby On Rails ...部分有权访问(Locals,实例变量......什么?)

时间:2011-03-01 14:36:22

标签: ruby-on-rails

在下面的代码段中,似乎form_user_fields partial无法访问patient_form或user_fields,但它可以访问@patient。这是预期的行为吗?

<%= form_for @patient do |patient_form| %>
    <%= patient_form.fields_for :user do |user_fields| %>

        <% render :partial => 'shared/form_user_fields' %>

1 个答案:

答案 0 :(得分:3)

通常,partials可以访问与其他视图相同的变量(来自控制器的实例变量。)它们无法访问您在包含partials的其他视图中创建的变量,即预期的行为。 / p>

如果要访问本地变量,可以将它们传递给partial:

<%= render :partial => "shared/form_user_field", :locals => {:user_fields => user_fields, :patient_form => patient_form} %>