モデレートを待つために特定のモデルが作成されたときに送信されるモデレーション テーブルがあります。
適度な.rb
class Moderate < ActiveRecord::Base
attr_accessible :moderatable_id, :moderatable_type, :event, :data
belongs_to :moderatable, polymorphic: true
belongs_to :user
scope :need_approval, where("approved IS NULL")
mount_uploader :moderated_image, ModerationUploader
def self.send_to_moderation(klass, event, params, id = nil)
Moderate.create(
moderatable_id: id,
moderatable_type: klass,
event: event,
data: params.to_s
)
end
...
end
player.rb
class Player < ActiveRecord::Base
attr_accessible :first_name, :last_name, :handle, :game_id, :sc_race, :lane, :birthday,
:photo, :team_division_id, :country_id, :keyboard, :mouse, :mousepad, :headset, :short_handle,
:videocard, :bio, :monitor, :processor, :facebook, :twitter, :user_id, :stream_attributes
...
mount_uploader :photo, PlayerUploader
end
「作成」アクションの例
def create
@player = Player.new(params[:player])
@player.user = current_user
if @player.save
Moderate.send_to_moderation("Player", "create", mod_params.to_json)
redirect_to players_url, notice: "Player successfully created!"
else
render action: "new"
end
end
パラメーター
Parameters: {"utf8"=>"✓",
"authenticity_token"=>"er0VIcRfywxjROf634bhCEzn1b/GbAOZqnTpFFC9MAk=",
"player"=>
{"handle"=>"angel_from_mexico",
"photo"=>
#<
ActionDispatch::Http::UploadedFile:0x00000103f58b70
@original_filename="pulga!.jpg",
@content_type="image/jpeg",
@headers="Content-Disposition: form-data;
name=\"player[photo]\";
filename=\"pulga!.jpg\"\r\nContent-Type: image/jpeg\r\n",
@tempfile=#<Tempfile:/var/folders/GP/GPFCwZ6wFS0gEUkdN0ek1E+++TI/-Tmp-/RackMultipart20131014-78956-106x9m0>
>,
"first_name"=>"pulga",
"last_name"=>"nam",
"lane"=>"",
"sc_race"=>"",
"birthday(2i)"=>"2",
"birthday(3i)"=>"28",
"birthday(1i)"=>"2005",
"team_division_id"=>"",
"country_id"=>"122",
"stream_attributes"=>{"name"=>""},
"bio"=>"멍, 멍!",
"monitor"=>"acer",
"mouse"=>"acer",
"processor"=>"rad one",
"headset"=>"rad ones",
"mousepad"=>"default",
"keyboard"=>"garbage",
"videocard"=>"good one",
"facebook"=>"",
"twitter"=>""}}
質問:
プレーヤーを作成または編集すると、アクションとすべてのデータを含む新しいモデレーションが作成されますが、その時点 (モデレーションの作成中) に画像をプレーヤー/プレーヤー アップローダーにアップロードするのではなく、画像がモデレーションを指すようにしたいそしてモデレーションアップローダー。これどうやってするの?