在简单的脚手架中未经许可的参数

时间:2014-07-31 18:33:38

标签: ruby-on-rails

我有2个模型PostPhoto

class Post < ActiveRecord::Base
  has_many :photos
end

和:

class Photo < ActiveRecord::Base
  belongs_to :post
  has_attached_file :photo,styles:{medium:"300x300>", small:"100x100>"}
  validates_attachment_content_type :photo, :content_type => /\Aimage\/.*\Z/
  validates :photo, presence: true
end

我对photos_controller进行了一次更改,因此可以上传照片,我添加了:photo

def photo_params
  params.require(:photo).permit(:post_id, :photo)
end

但是当我想添加一张新照片时,我会在日志中收到此警告:

Unpermitted parameters: post

以下是参数:

Processing by PhotosController#update as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"gSiLdGHe3VM8Ka6gjTKk7xjcK0omPdvqfQ0DRRXdOKo=", 
"photo"=>{"post"=>"1"}, "commit"=>"Update Photo", "id"=>"1"}

注意:我的photo模型中有Photo属性,但我认为这不会产生任何问题,而且我正在使用paperclip gem来上传图片。

1 个答案:

答案 0 :(得分:0)

根据我在发送到服务器的参数中看到的,post(不是post_id)设置为1。

Rails告诉您,您尝试将post(未经许可的参数)分配给1(虽然您在post_id方法中仅允许photo_params)。