UPDATE루비 레일 모델 방식에 '새로운'동의하지 않는다 추가 매개 변수
내가 아래에있는 내 질문에 대답,하지만 난 여전히 내 목표를 달성하기 위해 더 예쁜 방식을 요구하고있다. 내 컨트롤러에 대해 너무 많이 알고있는 느낌이 있습니다 일을하는 방법. . 나는 사용자가 채워 양식에서 해당 정보를 얻을 수와 params[:video]
와 Video.new 전화
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
내가 다음 URL을 조작하는 사용자가 통과 : 내 동영상 컨트롤러에서 생성 작업을 한
video_provider_id
및 thumb
을 복구하는 형식으로
그러나, 레일 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]'? –