这个问题has been asked and answered(针对该用户),但我自己的经历各不相同。
首先:Rails 4.0.4,Ruby 2.1.0,Dragonfly gem 1.0.5。
我正在使用Dragonfly gem在此Rails 4博客应用上上传图像,并且遇到了一个问题,图像似乎是通过模型保存的(本地,在默认公用文件夹中,至少:还没有使用在线文件存储),但没有出现在文章显示页面中。要清楚,页面会加载并显示损坏的图像链接。
在Rails控制台中查询特定的文章详细信息,在那里给出了以下NoMethodError:
NoMethodError: undefined method `dragonfly_accessor' for #<Class:0x00000108bc17f0>
from /Users/user/.rvm/gems/ruby-2.1.0/gems/activerecord-4.0.4/lib/active_record/dynamic_matchers.rb:22:in `method_missing'
我检查过宝石正在加载。 Dragonfly的设置简直就是provided on their site。我在initializers文件夹中生成了dragonfly.rb文件。以下是我对文档提供的设置的改编:
(Model)article.rb:
class Article < ActiveRecord::Base
dragonfly_accessor :image # Defines reader/writer for uploaded images
# validators, etc...
迁移:
class AddImageToArticle < ActiveRecord::Migration
def change
add_column :articles, :image_uid, :string
add_column :articles, :image_name, :string
end
end
show.html.erb
<%= image_tag @article.image.thumb('400x200#').url if @article.image_stored? %>
articles_helper.rb(我保留了对强参数的权限):
module ArticlesHelper
def article_params
params.require(:article).permit(:title, :body, :tag_list, :image)
end
end
关于此处顶部链接文章的回答,我尝试将extend Dragonfly::Model
添加到我的article.rb模型文件中;但是,在Rails控制台中找到与上传图像相关的文章时会产生NameError: uninitialized constant Article::Dragonfly
。
我错过了任何必要的细节吗?请告诉我。非常感谢任何帮助。
答案 0 :(得分:1)
尝试添加
def article_params
params.require(:article).permit(:title, :body, :tag_list, :image)
end
在articles_controller中而不是帮助者。