0

(针对该用户)已经提出并回答了这个问题,但我自己的经历有所不同。

第一个: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'

我检查了 gem 正在加载。Dragonfly 的设置就是他们网站上提供的。我已经在 initializers 文件夹中生成了 dragonfly.rb 文件。以下是我对随文档提供的设置的改编:

(型号)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

显示.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 模型文件中;但是,它会导致在NameError: uninitialized constant Article::DragonflyRails 控制台中查找据称包含上传图像的文章时。

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

4

1 回答 1

1

尝试添加

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

在articles_controller 而不是助手中。

于 2015-01-14T09:16:23.890 回答