UPDATERuby on Rails的模型方法「新」不接受額外的參數
我回答我下面的問題,但我仍然要求一個漂亮的方式來實現我的目標。我有一種感覺,我的控制器知道太多如何做事。
我在我的視頻控制器創建操作:
def create
method = 'get_' + params[:video][:provider] + '_video_id'
provider_video_id = Video.send(method, params[:video][:url])
thumb = Video.get_thumb_from_youtube(provider_video_id)
@video = Video.new(params[:video], :provider_video_id => provider_video_id, :thumb => thumb, :views => 0, :likes => 0)
if @video.save!
redirect_to video_path('1'), notice:'Video added successfully.'
else
render :new
end
end
我打電話Video.new與params[:video]
從用戶在填寫表格獲得它的信息,然後我操縱URL的用戶通過用表格來恢復video_provider_id
和thumb
。
但是,Rails的是不節能與provider_video_id
和thumb
視頻......我得到保存這個錯誤:
Validation failed: Thumb can't be blank, Thumb is invalid, Provider video can't be blank
我的猜測是new
方法不接受額外的參數...
您的解決方案看起來不錯,但我不確定我是否理解。我需要調用一個方法來獲得provider_video_id,所以我可以寫:'self.provider_video_id = get_provider_video_id(params [:video] [:url]'? –