render partial

Hi,

I am trying to use paperclip plugin to add images to the posts.

<%= render :partial => 'recent_posts', :collection => @posts %> @posts = Post.find(:all, ..., :limit => 5)

#_recent_posts.rhtml <%= image_tag recent_posts.photo.url(:thumb) %>

and it will end up with this error: "undefined method `symbolize_keys!' for \"/posts/24?user_id=1\":String"

Anybody knows what does this error mean? Thank you.

I guess it is because I am not passing the post and user id. If I use <%= image_tag @post.photo.url(:thumb) %> in my show action in posts controller it is working fine. But, I still dont know how to display photos in my collection. Any suggestions?

Thank you.

Petan Cert wrote:

<%= render :partial => 'recent_posts', :collection => @posts %> @posts = Post.find(:all, ..., :limit => 5)

Using the new Rails method is prettier. If Rails sees @recent_posts it will automatically assume the name for the partial and pass through recent_posts as a local posts variable.

  <%= render :partial => @recent_posts %>

#_recent_posts.rhtml <%= image_tag recent_posts.photo.url(:thumb) %>

and it will end up with this error: "undefined method `symbolize_keys!' for \"/posts/24?user_id=1\":String"

The :collection passed through is @posts. But you are referencing recent_posts instead which is different.

If you go with rails iterating through the collection then the singularization of the plural name will create "recent_post" from "@recent_posts" and you can reference the name that way.

  <%= image_tag recent_post.photo.url(:thumb) %>

If passing in @recent_posts doesn't make sense then you would need to reference through @posts with something like

  post.photo.url(:thumb)    where post was created by rails for iterating over the @posts collection.

  ActionController::Base

Bob