Rails редактирование изображения, прикрепленного к модели - PullRequest
0 голосов
/ 24 февраля 2010

Я пытаюсь настроить модель (клиента), которая содержит некоторые общие атрибуты о компании, но также с прикрепленным логотипом компании. Я не хочу использовать плагин, потому что я хочу понять этот аспект рельсов, если это возможно.

Я создал модель клиентов и модель изображения, и я могу создать новый клиент (код скаффолда) и загрузить соответствующее изображение (в порядке has_one :image и belongs_to :client).

Я использовал следующий код (взят прямо из Agile Rails, 3-е издание)

class Client < ActiveRecord::Base
  has_one :image

  def uploaded_image=(image_file)
    self.image = Image.new
    self.image.name = base_part_of(image_file.original_filename)
    self.image.content_type = image_file.content_type
    self.image.data = image_file.read
  end

  def base_part_of(filename)
    File.basename(filename).gsub(/^\w_-/,'')
  end

end

при редактировании объекта клиента, однако, новый файл загружается, но изменения не отражаются в БД. Нужно ли явно вызывать update-attribute для @ client.image? На данный момент мой метод обновления контроллера выглядит следующим образом:

def update
  @client = Client.find(params[:id])

  respond_to do |format|
    if @client.update_attributes(params[:client])
      flash[:notice] = 'Client was successfully updated.'
      format.html { redirect_to(@client) }
      format.xml  { head :ok }
    else
      format.html { render :action => "edit" }
      format.xml  { render :xml => @client.errors, :status => :unprocessable_entity }
    end
  end
end

Заранее спасибо за любые советы, извинения за вопрос noob

1 Ответ

2 голосов
/ 25 февраля 2010

Я настоятельно рекомендую использовать Скрепка . Это просто работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...