2017-01-10 2 views
0

Я пытаюсь адаптировать код обрезать изображения в сочетании с некоторым пользователем Javascriptattr_accessor предотвратить модели полей, которые будут сохранены

Вслед Railscast 184, а также другие учебные пособия, но не может заставить его работать. (Какая хорошая вещь, так как она заставляет меня понять Руби лучше)

Хотя моя проблема:

Я пытаюсь сохранить данные кадрирования в моей базе данных, но странные вещи происходят: следующий бит attr_accessor :x, :y, :width, :height предотвратить эти значения сохраняются контроллером.

действие обновления Контроллер

модель
if params[:profilepicupload] then 
     newpic = @professionnel.build_profilepic 
     newpic.image = params[:profilepicupload] 
     newpic.save 
    else 
     ppic = @professionnel.profilepic 
     ppic.x = params[:dataX] 
     ppic.y = params[:dataY] 
     ppic.height = params[:dataHeight] 
     ppic.width = params[:dataWidth] 
     ppic.save 

    end 

Profilepic.rb

class Profilepic < ApplicationRecord 

    belongs_to :professionnels 

    has_attached_file :image, styles: { big: "1200x1200", medium: "400x400", small: "250x250"}, whiny: false, use_timestamp: false, processors: [:cropper] 
    validates_attachment :image, content_type: { content_type: ["image/jpeg", "image/gif", "image/png"] }, size: {less_than: 15.megabytes} 
    attr_accessor :x, :y, :width, :height 

end 

Когда я удалить attr_accessor ссылку на файл модели то значения х, у, ширина и высота сохранен в модели!

(В обеих случаях урожай не сделан)

ответ

1

Устанавливая свои собственные attr_accessor метод переопределения Rails логики для извлечения этих значений из базы данных. Я предполагаю, что вы хотите сохранить эти значения в базе данных. Если это так, просто добавьте их в качестве атрибутов в вашу модель с помощью миграции, и все должно быть установлено.

+0

Итак, вы пытаетесь создать getter и setter для значений, которые уже есть в моей базе данных? Что предотвращает сохранение этих значений на уровне контроллера? (те x, y, width, height уже являются полями модели профиля) – Maxence

+1

Правильно, если они уже являются полями модели, вам не нужно устанавливать сами геттеры или сеттеры - эти методы должны уже существовать. Или я что-то не понимаю? – Coolness

+0

Я понимаю сейчас. Проблема в том, что я скопирую код, который не очень подходит для моей архитектуры приложений ... И я еще слишком начинающий, чтобы приспособить его сам .. тогда я сталкиваюсь с такими глупыми вещами ... – Maxence