我正在尝试设置我的控制器,以便它响应第一个"数据库中的视频记录,因此它将跳过模型中的验证。
video.rb
validates :link, presence: true, format: YT_LINK_FORMAT, unless: :skip_video_validation
before_create :uid_link_match, unless: :skip_video_validation
before_update :uid_link_match, unless: :skip_video_validation
attr_accessor :skip_video_validation
end
如何在控制器中进行设置,以便我可以获得第一个视频以跳过这些验证。
def update
@video = Video.find(params[:id])
if @video == @video[0]
@video.skip_video_validation = true
if @video.update_attributes(video_params)
flash[:success] = 'Video updated!'
redirect_to root_url
else
render 'edit'
end
else
...
end
请你解释一下我做错了什么以及为什么。
答案 0 :(得分:0)
完整代码应该在控制器中
def update
@user = User.find(params[:user_id])
@video = Video.find(params[:id])
if @video == @user.videos[0]
@video.skip_video_validation = true
if @video.update_attributes(video_params)
flash[:success] = 'Video updated!'
redirect_to root_url
else
render 'edit'
end
else
...
端