Tag: validation

Rails自定义validation

我有一个用户注册表单,其中包含常用字段(名称,电子邮件,密码等)以及“team_invite_code”字段和“角色”弹出菜单。 在创建用户之前 – 仅在用户角色是“孩子”的情况下 – 我需要: 检查team_invite_code是否存在 检查团队表中是否有团队具有相同的邀请代码 将用户与正确的团队联系起来 如何在Rails 2.3.6中编写适当的validation? 我尝试了以下内容,但它给了我错误: validate :child_and_team_code_exists def child_and_team_code_exists errors.add(:team_code, t(“user_form.team_code_not_present”)) unless self.is_child? && Team.scoped_by_code(“params[:team_code]”).exists? end >> NameError: undefined local variable or method `child_and_team_code_exists’ for # 更新:此validation代码有效: def validate errors.add_to_base(t(“user_form.team_code_not_present”)) if (self.is_child? && !Team.scoped_by_code(“params[:team_code]”).exists?) end

rails 3validation字符串

嗨 有没有办法告诉我,我的字符串可能不是’某事’? 我正在寻找类似的东西 validates :string, :not => ‘something’ 谢谢klump

Rails – validation:如果一个条件为真

在Rails上5。 我有一个带有description属性的Order模型。 如果满足以下两个条件之一,我只想validation它的存在:如果当前步骤等于第一步或者如果require_validation等于true。 我可以根据这样的条件轻松validation: validates :description, presence: true, if: :first_step? def first_step? current_step == steps.first end 但我不知道如何添加另一个条件并validation其中一个是否属实。 就像是: validates :description, presence: true, if: :first_step? || :require_validation 谢谢!

对Rails中的几个字段进行相同的自定义validation

我在Rails应用程序模型中有四个date_time字段。 我想对它们应用相同的validation方法,以便只接受有效的日期时间。 validation方法来自早期的堆栈溢出问题 : validate :datetime_field_is_valid_datetime def datetime_field_is_valid_datetime errors.add(:datetime_field, ‘must be a valid datetime’) if ((DateTime.parse(datetime_field) rescue ArgumentError) == ArgumentError) && !datetime_field.nil? && !datetime_field.blank? end 除了为每个DateTime字段定义四个完全相同的方法之外,还有更优雅的方法来validation这些字段吗?

validation相关对象的最大数量

我有一个帐户模型和一个用户模型: class Account < ActiveRecord::Base has_many :users end class User < ActiveRecord::Base belongs_to :account end 用户属于某个帐户,并且帐户具有用户最大值(每个帐户不同)。 但是,如何在向帐户添加新用户时validation是否未达到此最大值? 首先,我尝试在用户上添加validation: class User < ActiveRecord::Base belongs_to :account validate :validate_max_users_have_not_been_reached def validate_max_users_have_not_been_reached return unless account_id_changed? # nothing to validate errors.add_to_base("can not be added to this account since its user maximum have been reached") unless account.users.count < account.maximum_amount_of_users end end […]

活动管理员渲染编辑页面

我可以很容易地重定向,但我想在validation失败时渲染编辑页面,所以我将所有validation方法都转移到表单中。 我不确定如何使用active_admin呈现编辑操作。 如果我尝试render :action => ‘edit’我得到一个模板缺少页面我也尝试render active_admin_template(‘edit.html.arb’) ,它给了我一个页面内的页面,但没有错误。 有任何想法吗? member_action :state do space = Space.find(params[:id]) if space.send(params[:state]) #space.send(params[:state]+”!”) flash[:notice] = “State Changed!” redirect_to :action => :index else #render :action => ‘edit’ #render active_admin_template(‘edit.html.arb’) flash[:error] = “#{space.errors}” redirect_to :action => :edit end end

validation与模型的错误消息相关联

我有两个模型如下 class User < ActiveRecord::Base validates_associated :account end class Account 2..30 ,:message => “Should be atleast 3 characters long!” validates_uniqueness_of :unique_url ,:message => “Already Taken” validates_format_of :unique_url,:with => /^([a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])$/ , :message => ” Cannot contain special charaters” #———————————-Validations–End————————— end 现在,当我将帐户与用户关联时,它说 “帐户无效” 相反,我想直接从该模型获取错误消息。 所以它应该说 “Should be atleast 3 characters long!” 或”Already Taken”或” Cannot contain special charaters” […]

Rails:如何要求至少一个字段不为空

我知道我可以通过向模型添加validates_presence_of :field来要求字段。 但是,如何要求至少一个字段是强制性的,而不需要任何特定字段? 提前致谢 – Deb

Rails表单validation

我有一个Rails应用程序,允许用户通过填写​​一个扩展的表单来构建数据库查询。 我想知道在Rails中检查表单参数的最佳实践。 以前,我有我的results方法(表单提交的方法)执行以下操作: if params[:name] && !params[:name].blank? @name = params[:name] else flash[:error] = ‘You must give a name’ redirect_to :action => ‘index’ return end 但是对于几个表格领域,看到每个表格重复这一点都很烦人。 我不能只是将它们全部放在某个循环中以检查每个字段,因为字段设置不同: 单键: params[:name] 一个键和一个子键: params[:image][:font_size] 如果设置了另一个字段,则只期望填写一些表单字段 等等。这也是重复的,因为我为每个缺失/无效参数设置了flash[:error] ,并为每个参数重定向到相同的URL。 我切换到使用before_filter检查所有必要的表单参数,只有在一切正常时才返回true。 然后我的results方法继续,并且变量只是被分配为flat-out,不涉及任何检查: @name = params[:name] 在我的validate_form方法中,我有以下代码部分: if ( params[:analysis_type][:to_s] == ‘development’ || params[:results_to_generate].include?(‘graph’) ) {:graph_type => :to_s, :graph_width => :to_s, :theme => […]

Rails:自定义validation消息

我正在尝试制作一个简单的自定义validation消息。 我正在使用的validation编译并运行正常,但我没有看到消息有任何变化: validates :rating, :inclusion => { :in => 0..5 }, :presence => { :message => ” must be within 0-5″ } 我收到的消息仍然是Rating is not included in the list 我需要validationrating是否存在,并且是0-5之间的decimal