Partial local accessible only using local_assigns, not displayed by name

I am transferring two local residents from the ERB point of view to partial. Both locators are successfully passed to local_assigns. However, I can use FormBuilder only through the local variable name in partial. Another value can be used in my partial as local_assigns [: disable_edits], but not as disable_edits.

_form.html.erb

    <div>
    <%= f.fields_for :panels do |builder| %>
        <%= render "panel_fields", :f => builder, :disable_edits => true %>
    <% end %>
</div>

_panel_fields.html.erb

<div>
<p>
    <%= local_assigns[:disable_edits] %>
</p>
<p>
    <%#= disable_edits ? 'disable edits true' : 'disable edits false' %>
</p>
<p>
    <%= local_assigns.keys %>
</p>

local_assigns [: disable_edits] causes the display to be true.

local_assigns.keys leads to the display of "[: f ,: disable_edits ,: panel_fields]".

Uncommenting the ternary result results in a "local variable" undefined or the `disable_edits' method for # <#: 0x4d58768>"

, , Rails, : partial = > ,: locals = > ,: as = > .. . , , has_key vs. nil? . , local_assigns , , -.

local_assigns [: disable_edits], , , . !

+3
1

render :partial => "panel_fields", :locals => {:f => builder, :disable_edits => true }
0

All Articles