我根据有关carrierwave的文档:https://github.com/carrierwaveuploader/carrierwave以及来自此博客的建议将我的应用从paperclip转换为carrierwave:http://bessey.io/blog/2013/04/07/migrating-from-paperclip-to-carrierwave/
但是我为“存在”得到了一个未定义的方法错误?'在文章#show中。
这是我的_form.html.erb代码
<%= form_for(@article, html: {multipart: true}) do |f| %>
.
.
.
<p>
<% if @article.image.exists? %>
<%= image_tag @article.image.url %><br />
<% end %>
<%= f.label :image, "Attach a New Image" %><br />
<%= f.file_field :image %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
这是文章#show
def show
@article = Article.find(params[:id])
end
文章模型
class Article < ActiveRecord::Base
mount_uploader :image, ImageUploader, :mount_on => :image
default_scope -> { order('created_at DESC') }
has_many :comments
has_many :taggings
has_many :tags, through: :taggings
# has_attached_file :image
# validates_attachment_content_type :image, :content_type => ["image/jpg", "image/jpeg", "image/gif", "image/png"]
def total_pages
@articles = Article.all
end
def tag_list
self.tags.collect do |tag|
tag.name
end.join(", ")
end
def tag_list=(tags_string)
tag_names = tags_string.split(",").collect{|s| s.strip.downcase}.uniq
new_or_found_tags = tag_names.collect { |name| Tag.find_or_create_by(name: name) }
self.tags = new_or_found_tags
end
end
如果您需要查看其他内容,请与我们联系。我还在学习rails,而且我不知道在哪里需要调试这个特定的错误。
答案 0 :(得分:1)
要检查图像是否存在,您可以使用
<% if @article.image_url %>
<%= image_tag @article.image.url %><br />
<% end %>
有关在应用中设置运营商wave的详情,请查看此剧集railscasts