ruby-on-rails - rails : How to know in advance if "save" is going to fail?

标签 ruby-on-rails ruby-on-rails-3

考虑我的 Controller 的这段代码:

def create
  change_some_db_values
  buyer = Buyer.new(params[:buyer])
  if buyer.save
    redirect_to(:action => 'index')
  else
    render('new')
  end
end

如果buyer.save我想提前知道会不会失败。如果它会失败,我不想执行 change_some_db_values .我怎么能做到这一点?

最佳答案

您可以 add a check for validity before saving :

def create
  buyer = Buyer.new(params[:buyer])
  if buyer.valid?
    change_some_db_values
  end
  if buyer.save
    redirect_to(:action => 'index')
  else
    render('new')
  end
end

关于ruby-on-rails - rails : How to know in advance if "save" is going to fail?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4699416/

相关文章:

ruby-on-rails-3 - 如何在助手的子类中捕获 block ?

ruby-on-rails - 在以下情况下如何模拟 NOT IN SQL 条件

ruby-on-rails - RubyMine 控制台 : Force Ruby/Rails to abort execution of miss typed statements

jquery - 在 Rails 错误中通过 Ajax 提交表单

ruby-on-rails - Rails 在一个表单上更新多个模型

ruby - 我如何用密码保护我的/sidekiq 路由(即要求对 Sidekiq::Web 工具进行身份验证)?

ruby-on-rails - Rails 3.2 的 Jabber/XMPP gem

ruby-on-rails - 如何在符号或字符串上有条件地停止 pry.binding?

jquery - Rails 3 和 jquery 亮点

android - 为什么此 CSS 不适用于 Android 上的 Chrome,但适用于其他地方?