Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

locals in rails partial

I have this partial:

<% if flash.any? %>
  <% flash.each do |type, message| %>
    <%= render 'shared/flash_message', locals: { type: type, message: message } %>
  <% end %>
<% end %>

which is including this partial:

<div class="message-box message-box--<%= type %>">
  <a class="close" data-dismiss="alert">×</a>
  <%= message %>
</div>

When running that I get:

undefined local variable or method `type' for

<#:0x007fe510aa3c80>

It's pointing to an error where I am outputting <%= type %> Anyone know why?

like image 457
rctneil Avatar asked Mar 07 '26 03:03

rctneil


1 Answers

You have to specify that you are rendering a partial to pass in the local variables.

So change

<%= render 'shared/flash_message', locals: { type: type, message: message } %>

to

<%= render partial: 'shared/flash_message', locals: { type: type, message: message } %>.

http://guides.rubyonrails.org/layouts_and_rendering.html#passing-local-variables

like image 138
Sterling Graham Avatar answered Mar 09 '26 15:03

Sterling Graham



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!