Rails: проверки не применяются, вызывать вручную? - PullRequest
2 голосов
/ 28 апреля 2011

Я проверяю на

validates :group_id, :presence => true

в моей модели "проект".Тем не менее, когда я создаю проект без group_id, я не получаю ошибку проверки.Если я попытаюсь сделать

p = Project(:name => "Test")
p.save

, консоль rails вернет false, с сохранением!это говорит мне, что проверка для group_id не удалась.Таким образом, валидация каким-то образом выполняется для метода save, но в моем приложении это не по умолчанию.Должен ли я сделать руководство

if @project.save == true
...
end

или что-то в моем контроллере?

Спасибо, B

1 Ответ

3 голосов
/ 28 апреля 2011

Вы можете проверить @ project.valid? перед сохранением.

  def signup
    if request.post?
      @user_data = UserData.new(:login => params[:user], :password => params[:password])
      if @user_data.valid?
        if @user_data.save
          session[:cuser] = UserData.authenticate(@user_data.login, @user_data.password).login
          redirect_to(:controller=> 'sync', :action=> 'all')
          return
        end
      else
        @error_on_signup = true
      end
    end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...