0

有什么方法可以让模型执行类似的错误消息flash[:notice]??

我想避免两次将相同的数据输入到我的数据库中。

before_save :no_duplication

private

    def no_duplication
        if CarPrice.where(:car_id => self.car_id).where(:agent_id => self.agent_id).blank?
            return true
        else
            return false
        end
    end

此代码停止重复,但不发送任何错误消息。我该如何解决?

4

1 回答 1

4

我更喜欢使用模型验证:

validates :car_id, uniqueness: { scope: :agent_id }

查看文档以获取其他选项,例如 allow_nil: true 等。http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html

我还建议添加一个唯一索引:

add_index :name_of_table, [:car_id, :agent_id], unique: true
于 2015-10-20T15:39:27.697 回答