Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Passing parameters to partial view

I have a view that displays multiple images and those images' associated tags. I decided to use a partial view for each image and its tags, but I am having trouble passing in the image object into the partial view. Here is the main view's relevant code:

<table>   <% @images.each do |i| %>     <tr>       <%= render :partial => :image_tag, :image => i %>     </tr>   <% end %> </table> 

Here is the partial view's relevant code (partial view is named _image_tag.html.erb):

<table>   <%= image.id %>   <%= image_tag image.src %> </table> 

I read in this thread that I can pass in the image object the way that I am currently doing it. I tried passing in the id through an options hash on the render method, and that also didn't work. The error I am getting is:

undefined method `model_name' for Symbol:Class 

centered around the line where I am calling render :partial in the main view.

like image 364
jnevelson Avatar asked Jul 12 '11 23:07

jnevelson


People also ask

Can you have scripts in partial view?

cshtml. JavaScript functions can be bound to elements on the partial view; the partial view is rendered at the same time as the parent view. This happens when loading the partial view with a @Html. Action helper method, as in this section from Edit.


1 Answers

<%= render partial: "image_tag", locals: {image: i} %> 

is how you would pass variables to partials.

like image 102
vinceh Avatar answered Sep 24 '22 00:09

vinceh