蜻蜓宝石,图像保存到数据库但没有出现在页面上,"未定义的方法,' dragonfly_accessor'"在Rails控制台中

时间:2014-06-30 15:54:47

标签: ruby-on-rails ruby-on-rails-4 dragonfly-gem

这个问题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

我错过了任何必要的细节吗?请告诉我。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

尝试添加

def article_params
  params.require(:article).permit(:title, :body, :tag_list, :image)
end

在articles_controller中而不是帮助者。