Rails避免重复数据库条目(许多属性)



是否有办法使模型执行像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

此代码停止复制,但不发送任何错误消息。我怎样才能解决这个问题?

我更喜欢使用模型验证:

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

相关内容

  • 没有找到相关文章

最新更新