Skip to content

Instantly share code, notes, and snippets.

@KennyVB
Created December 18, 2012 22:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KennyVB/4332533 to your computer and use it in GitHub Desktop.
Save KennyVB/4332533 to your computer and use it in GitHub Desktop.
NoMethodError in Posts#show
Showing /Users/kennyvb/GitHub/frakklerne/app/views/posts/show.html.erb where line #20 raised:
undefined method `each' for /uploads/post/image/3/Dirloads_IMG_0097.PNG_MB.png:PostimageUploader
Extracted source (around line #20):
17:
18: <p>Tags: <%= raw @post.tag_list.map { |t| link_to t, tag_path(t) }.join(', ') %></p>
19:
20: <% @post.image.each do |image| %>
21:
22: <%= link_to (image_tag (post.image_url(:thumb))), post.image.url(:original), :class => 'postimage' %>
23:
Rails.root: /Users/kennyvb/GitHub/frakklerne
Application Trace | Framework Trace | Full Trace
app/views/posts/show.html.erb:20:in `_app_views_posts_show_html_erb___1683756060285621274_70167645681440'
app/controllers/posts_controller.rb:20:in `show'
Request
Parameters:
{"id"=>"mit-forste-indlaeg"}
class Post < ActiveRecord::Base
extend FriendlyId
friendly_id :title, use: [:slugged, :history]
attr_accessible :content, :name, :title, :tag_list, :image
acts_as_taggable
validates :name, :presence => true
validates :title, :presence => true,
:length => { :minimum => 5 }
has_many :comments, :dependent => :destroy
mount_uploader :image, PostimageUploader
end
# encoding: utf-8
class PostimageUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
include CarrierWave::RMagick
# include CarrierWave::MiniMagick
# Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility:
# include Sprockets::Helpers::RailsHelper
# include Sprockets::Helpers::IsolatedHelper
# Choose what kind of storage to use for this uploader:
storage :file
# storage :fog
# Override the directory where uploaded files will be stored.
# This is a sensible default for uploaders that are meant to be mounted:
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
# Provide a default URL as a default if there hasn't been a file uploaded:
# def default_url
# # For Rails 3.1+ asset pipeline compatibility:
# # asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
#
# "/images/fallback/" + [version_name, "default.png"].compact.join('_')
# end
# Process files as they are uploaded:
# process :scale => [200, 300]
#
# def scale(width, height)
# # do something
# end
# Create different versions of your uploaded files:
# version :thumb do
# process :scale => [50, 50]
# end
version :thumb do
process :resize_to_limit => [200, 200]
end
version :original
# Add a white list of extensions which are allowed to be uploaded.
# For images you might use something like this:
# def extension_white_list
# %w(jpg jpeg gif png)
# end
# Override the filename of the uploaded files:
# Avoid using model.id or version_name here, see uploader/store.rb for details.
# def filename
# "something.jpg" if original_filename
# end
end
<p id="notice"><%= notice %></p>
<p>
<b>Name:</b>
<%= @post.name %>
</p>
<p>
<b>Title:</b>
<%= @post.title %>
</p>
<p>
<b>Content:</b>
<%= @post.content %>
</p>
<p>Tags: <%= raw @post.tag_list.map { |t| link_to t, tag_path(t) }.join(', ') %></p>
<% @post.image.each do |image| %>
<%= link_to (image_tag (post.image_url(:thumb))), post.image.url(:original), :class => 'postimage' %>
<% end %>
<h2>Comments</h2>
<%= render @post.comments %>
<h2>Add a comment:</h2>
<%= render "comments/form" %>
<%= link_to 'Edit Post', edit_post_path(@post) %> |
<%= link_to 'Back to Posts', posts_path %> |
@KennyVB
Copy link
Author

KennyVB commented Dec 18, 2012

can't get it to show images noir get it to link to them at line 22 in show.html.erb

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment