我知道IPv4和IPv6的验证格式.但不确定如何将它们组合在一起,因此至少有一种格式应该是真的.这是我的验证
validates :src_ip_addr, :presence => true, :uniqueness => true,
:format => { :with => Resolv::IPv4::Regex, :message => "Not an valid IPv4 format"}
validates :src_ip_addr, :presence => true, :uniqueness => true,
:format => { :with => Resolv::IPv6::Regex, :message => "Not an valid IPv6 format"}
Run Code Online (Sandbox Code Playgroud)
如何将它们组合起来如果一种格式正确则验证应该有效.仅当ipv4和ipv6格式不正确时才会失败.
谢谢.
我重写Devise会话控制器来调整用户登录行为.在我的情况下,我有两种用户 - 主用户和子用户.如果主用户为子用户设置登录访问权限,则子用户只能登录.这是我的用户模型
class User < ActiveRecord::Base
has_many :child_users, :class_name => "User",:foreign_key => "parent_id", :dependent => :destroy
belongs_to :parent, :class_name => "User"
end
Run Code Online (Sandbox Code Playgroud)
这是我的会话控制器
class SessionsController < Devise::SessionsController
def create
logger.info "Attempt to sign in by #{ params[:user][:email] }"
@user = User.find_by_email(params[:user][:email])
if @user != nil
if !@user.is_portal_access?
flash[:notice] = "#{ @user.email } do not have portal access."
redirect_to :controller => 'welcome'
else
super
end
end
end
def destroy
logger.info "#{ current_user.email } signed out"
super
end
end
Run Code Online (Sandbox Code Playgroud)
当我使用正确的凭证登录时使用当前代码 - …
我从来没有使用工厂女孩,我从本周开始测试所以所有这些新东西让我疯了.谁能解释一下使用工厂女孩创建记录的简单方法.
这是用例.我已经使用黄瓜创建了一个测试,它创建了一个用户,并创建了其他记录,如帐户,用户类别.现在我正在编写第二个测试用例,我说应该没有测试数据(我可以使用从第一次测试创建的数据,但不希望从其他测试用例中依赖.).所以我想使用工厂女孩为我和相关的用户记录创建一个用户.在这里,我的测试无需使用工厂女孩.
@no-database-cleaner
Feature: Managing users parent child relationships
In order to use portal
I want to create parent child relationships
Scenario: Creating a child user
Given I am on the homepage
When I attempt to sign in with following user account:
| email address | password |
| abc@company1.com | password |
Then I should see "abc@company1.com" message on page
When I follow "All Child Users"
Then I should see "Add Sub Child"
When I click "Add Sub Child" …Run Code Online (Sandbox Code Playgroud)