скрепки рельсы: загруженный файл не сохраняется - PullRequest
1 голос
/ 16 июля 2011

Я делаю свои первые шаги с плагином Rails 'paperclip' и для этого смотрел RailsCast # 134: http://railscasts.com/episodes/134-paperclip

Сделал все то же самое, за исключением того, что я использую rails 3.0.9 и установил скрепку (2.3.15), добавив ее в Gemfile.

До 3:00 каста все отлично работает. Но после перезагрузки шоу-страницы вместо загруженного изображения я получаю «отсутствующее» изображение. Также внутри директории public ничего нового не было создано.

Есть подсказки?

Обновление: по запросу здесь соответствующий код:

Gemfile:
…
gem 'paperclip'
gem 'rails', '3.0.9'
…

config/routes.rb:
Foobar::Application.routes.draw do
  resources :books
end

app/models/book.rb:
class Book < ActiveRecord::Base
  has_attached_file :cover
  attr_accessor :cover_file_name
end

app/controllers/books_controller.rb:
# nothing changed here after scaffolding

app/views/books/_form.html.erb:
<%= form_for(@book, :html => { :multipart => true}) do |f| %>
…
<div class="field">
  <%= f.file_field :cover %>
</div>

app/views/books/show.html.erb:
…
<%= image_tag «book.cover.url %>
…

db/migrate/..._create_books.rb:
class CreateBooks < ActiveRecord::Migration
  def self.up
    create_table :books do |t|
      t.string :name

      t.timestamps
    end
  end

  def self.down
    drop_table :books
  end
end

db/migrate/..._ad_attachment_cover_to_book.rb:
class AddAttachmentCoverToBook < ActiveRecord::Migration
  def self.up
    add_column :books, :cover_file_name, :string
    add_column :books, :cover_content_type, :string
    add_column :books, :cover_file_size, :integer
    add_column :books, :cover_updated_at, :datetime
  end

  def self.down
    remove_column :books, :cover_file_name
    remove_column :books, :cover_content_type
    remove_column :books, :cover_file_size
    remove_column :books, :cover_updated_at
  end
end

Я начал с «рельсовых обложек для скрепок» после того, как у меня была «книга» на эшафоте

Ответы [ 2 ]

2 голосов
/ 17 июля 2011

Я думаю, что attr_accessor :cover_file_name создает конфликт для столбца таблицы с тем же именем. Попробуйте удалить эту строку. Не могу найти ничего, что могло бы вызвать какие-либо проблемы.

0 голосов
/ 23 мая 2017

Люди, я думаю, что я уже дал решение, когда вы видите эту ошибку, потому что столбец обложки не имеет разрешения на ввод, это решается в контроллере статей в params_article может только манипулировать заголовком, и тело к этому также добавляет к нему к обложке колонки я остаюсь вот так

Def articulo_params params.require (: article) .permit (: title,: body,: cover)
End
...