Tag: validation

播种未通过嵌套表validation(validates_presence_of)

组织模型与用户模型具有1:多的关联。 我的用户模型文件中有以下validation: belongs_to :organization validates_presence_of :organization_id, :unless => ‘usertype==1’ 如果usertype为1,则表示用户没有与之关联的组织。 对于不同的usertype,organization_id的存在应该是强制性的。 组织模型包括: has_many :users accepts_nested_attributes_for :users, :reject_if => :all_blank, :allow_destroy => true 我的种子文件使用嵌套,包括: Organization.create!(name: “Fictious business”, address: Faker::Address.street_address, city: Faker::Address.city, users_attributes: [email: “helpst@example.com”, username: “helpyzghtst”, usertype: 2, password: “foobar”, password_confirmation: “foobar”]) 播种时会产生以下错误。 从模型中删除validation解决了它,但我不想这样做。 我怎么解决这个问题? validation失败:用户组织不能为空

执行了validation,但仅在生产中没有在Rails 3.2.0上使用field_with_errors div包围的字段

我有一个出版物模型,在某些字段上有validation,例如标题。 我删除了我觉得烦人的错误消息,并在输入被field_with_error div包围时设置了一个很好的CSS,这样用户就知道哪些字段没有validation。 问题是当我部署到生产时,仍然执行validation(即,用户被发送回表单),但输入不包含错误div。 我尝试在生产模式下本地运行应用程序,我可以学到的是,当我在config / environments / production.rb文件中将config.cache_classes设置为true时,它开始发生。 此外,当我在控制器中记录@ publication.errors时,会出现错误。 任何的想法 ?

播种数据库时“密码不能为空”错误

我正在尝试使用我在这里找到的seed_dump gem抓取的数据来播种我的数据库。 无论如何,生成的种子文件看起来合法,但它似乎与用户模型validation相悖: ActiveRecord :: RecordInvalid:validation失败:密码不能为空 为了给出一个想法,种子看起来像这样: User.create!([ {email: “1234@localhost”, encrypted_password: “$2a$10$5eoHh6M2q4GjGkHClO.NqebWWhS94D8rNj5Ot6CB2qrbn7IrTfkSa”, reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 1, current_sign_in_at: “2014-12-31 22:27:09”, last_sign_in_at: “2014-12-31 22:27:09”, current_sign_in_ip: “127.0.0.1”, last_sign_in_ip: “127.0.0.1”, admin: false} ]) 此外,我正在使用devisegem进行用户管理。 在给定此filter的情况下是否有一种优雅的方式来播种用户数据

Rails 3:如何防止我的validation从time_select下拉菜单中传递“nil time”?

我使用time_select和提示(“选择小时”……)并且想确保用户实际输入有效时间。 但是如果在没有选择时间的情况下提交表单(因此选择了空提示选项),我的validation不会出现任何错误。 我的validation: validates :start_time, :presence => true, :allow_nil => false, :allow_blank => false 原因是rails将time_select字段的输入自动转换为此日期,当它们为空时: 0001-01-01 00:00:00 有没有一种很好的方法可以防止这种情况发生? 谢谢!

validation字符串对另一个属性的长度

我有一个有2个属性的模型 名称 URL_NAME 我想确保url_name中的字符数小于或等于名称中的字符数。 我尝试过做类似下面的事情,但似乎没有用。 有没有人有什么建议? class Country :name.length end 我是ruby和rails的新手,请原谅我,因为我对语言中的一些基本概念缺乏了解:)

Rails 3在没有模型的情况下形成validation

我使用form_tag和其他简单的非模型相关的rails形成帮助器创建了一个联系表单。 表单只是向站点管理员提交电子邮件。 无论如何,我想validation表单上的字段,但我很难找到一个Rails友好的方式来做到这一点。 我找到了似乎是同一个问题的答案,但是接受的答案似乎没有为Rails 3提供一个明确的解决方案(它似乎更倾向于Rails 2)。 有人可以提供一个简明的例子,说明如何轻松地对Rails 3中与模型无关的表单进行客户端validation吗? 使用默认Railsvalidation器的策略的额外点。 让我们假装我的表单看起来像这样:

如何使轨道模型无效

我有一个独特产品的产品型号。 因此,当用户购买此型号时,没有人可以再次购买它,卖家不能与买家相同。 当我购买产品时,我称之为product.buy(买方)方法。 但是当买方=卖方和date.sale!= nil时,此方法应该使模型无效。 但这不起作用。 我该如何解决? def buy(buyer) if self.user != buyer if self.date_sale.nil? self.date_sale = Time.now self.buyer = buyer else # self.errors.add(:buyer, “article bougth”) # Dont’t work end else # self.errors.add(:buyer, “seller can not buyer”) # Dont’t work end end

使用CoffeeScript以编程方式检查复选框

如何以编程方式检查Coffeescript中的复选框? 我知道在Javascript中,我可以使用这个: myElement.checked = true 我可以在Coffeescript中执行以下操作吗? myElement.checked “true” 我已经尝试了以上但它不适合我。 在这方面的任何帮助将受到高度赞赏。 谢谢。

Ruby on Rails ActiveRecord唯一性validation

我是Rails的新手,正在阅读有关该主题的一些资源。 我得到了一些问题。 好吧,假设我们有一个模型,它validation了一些属性的唯一性: class User < ActiveRecord::Base attr_accesible :name validates :name, uniqueness: true end 因此,我现在合理地期望,我将无法在数据库中创建(或更准确地说 – 保存)两个具有相同名称的用户实例。 但是,这个资源确实坚持,它仍然是可能的! 一些用户登录。 点击“登录”按钮不止一次 请求1在内存中创建用户(有效) 请求2在内存中创建用户(有效) 请求1已成功保存 请求2已成功保存 稍后在此源上建议将数据库中的索引添加到“名称”列并使其唯一。 但是,如果我之前说过 – validation是在保存过程中进行的,那么如何保存第二个请求呢? 或者我丢失了什么? (我提到的资源是Rails Tutorial

如何validation提交ActiveRecord的单个属性而不是其所有属性?

我正在使用Ruby on Rails 3,我想为提交ActiveRecord而不是其所有属性validation单个属性。 例如,在我的模型中,我有: validates :firstname, :presence => true, … validates :lastname, :presence => true, … 我想分别在:firstname和:lastname上运行validation 。 可能吗? 如果是这样,我该怎么做? PS:我知道出于validation目的,有一些方法,如“validates_presence_of”,“validates_confirmation_of”,……,但我只想使用上面的代码。