1
直到現在我想,我只允許那些我需要保存在數據庫中的屬性。但最近我用Jcrop裁剪我的頭像,它具有將從前端作物後發送4個虛擬屬性,我們是否也需要允許ruby虛擬屬性?
這裏是我的模型
class User < ActiveRecord::Base
mount_uploader :avatar, AvatarUploader
attr_accessor :crop_x, :crop_y, :crop_w, :crop_h
after_update :crop_avatar
def crop_avatar
avatar.recreate_versions! if crop_x.present?
end
end
當我農作物提交後,我的控制檯日誌說
unpermitted params: crop_x, crop_y, crop_h, crop_w
並且圖像沒有被裁剪。
但如果我可以把這些虛擬的屬性
params.require(:user).permit(:avatar,:crop_x,:crop_y,:crop_h,:crop_w)
然後圖像被成功地裁剪。
所以問題是爲什麼我需要允許這些虛擬屬性,即使這不是保存在數據庫中?