如何设置控制器以响应特定的对象rails

时间:2017-07-28 06:54:36

标签: ruby-on-rails ruby

我正在尝试设置我的控制器,以便它响应第一个"数据库中的视频记录,因此它将跳过模型中的验证。

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

请你解释一下我做错了什么以及为什么。

1 个答案:

答案 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
...