草庐IT

users_class

全部标签

ruby - 我如何使用 class_eval?

我不明白class_eval。classModuledefattr_(*syms)syms.eachdo|sym|class_eval%{def#{sym}=(val)@#{sym}=valend}endendend%是什么意思?class_eval有什么作用?(val)来自哪里? 最佳答案 简短的回答是:您可能希望避免像这样使用class_eval。这是对您的代码的解释:%{hello}只是在Ruby中编写字符串文字的另一种方式,无需担心在字符串中转义双引号或单引号:%{hello"world"}=="hello\"world\"

ruby 心印 : explicit scoping on a class definition part 2

我想澄清这个原始post的一些事情.答案建议Ruby按以下顺序搜索常量定义:封闭范围任何外部范围(重复直到达到顶层)包含的模块父类(superclass)对象内核所以澄清一下,在第(1-6)步是为legs_in_oyster找到的常量LEGS的值?它来自父类(superclass)Animal吗?类MyAnimals的范围是否因为不被视为封闭范围而被忽略?这是由于明确的MyAnimals::Oyster类定义吗?谢谢!只是想了解。这是代码:classAnimalLEGS=4deflegs_in_animalLEGSendclassNestedAnimaldeflegs_in_neste

ruby-on-rails - Rails belongs_to 关联(与 :class_name) returns nil

我是Rails开发的新手,遇到了一个小的关联问题。我想给一个关联起一个不同于它链接到的模型的名字。我有以下两个模型:classUser"User"#Sowecancallevent.admintoretrievetheUserwhoownsthisEventend我按如下方式构建用户:event=event.create!:title=>"NewEvent"user=User.create!:username=>"thinkswan"user.events当我进入控制台时,我收到以下信息:irb>user=User.find(1)irb>user.events=>[#]irb>even

ruby-on-rails - 删除或覆盖由父类(super class)或混合添加的 ActiveRecord 验证

我在我的Rails应用程序中使用Clearance进行身份验证。Clearance::Usermixin向我的User模型添加了一些验证,但其中有一个我想删除或覆盖。这样做的最佳方法是什么?有问题的验证是validates_uniqueness_of:email,:case_sensitive=>false这本身还不错,但我需要添加:scope=>:account_id。问题是,如果我将其添加到我的User模型validates_uniqueness_of:email,:scope=>:account_id我得到了两种验证,而且Clearance添加的验证比我的更严格,所以我的没有效果

ruby-on-rails - 如何在 rspec 功能测试中访问(设计)current_user?

在设计文档中,他们提供了有关在测试Controller时如何访问current_user的提示:https://github.com/plataformatec/devise/wiki/How-To:-Test-controllers-with-Rails-3-and-4-%28and-RSpec%29但是,在进行功能测试时呢?我正在尝试测试我的一个Controller的创建方法,并且在该Controller中使用了current_user变量。问题是devise中建议的宏使用了@request变量,并且对于功能规范来说它是nil。什么是解决方法?编辑:这是我目前的规范:feature

ruby - 使用 class_eval 和 instance_eval 访问 Ruby 类变量

我有以下内容:classTest@@a=10defshow_a()puts"a:#{@@a}"endclass为什么以下工作:Test.instance_eval{show_b}b:40=>nil但是我不能直接访问@@b?Test.instance_eval{@@b}NameError:uninitializedclassvariable@@binObject同样,下面的工作t=Test.newt.instance_eval{show_a}a:10=>nil但以下失败t.instance_eval{@@a}NameError:uninitializedclassvariable@@ai

Ruby - 使用 class_eval 定义方法

我正在学习SaaS斯坦福类(class),尝试完成thisassignment的第5部分我很难理解这个概念,这就是我试图做的:classClassdefattr_accessor_with_history(attr_name)attr_name=attr_name.to_sattr_readerattr_nameattr_readerattr_name+'_history'class_eval%Q'{def#{attr_name}(a);#{attr_name}_history.push(a);end;}'endend我可能做错了各种各样的事情,阅读了Ruby之书关于元编程的章节,但我

ruby Mechanize : user agents?

Mechanize中有多少用户代理?是否有所有用户代理选项的便捷列表? 最佳答案 是的。看https://github.com/sparklemotion/mechanize/blob/master/lib/mechanize.rb#L115:AGENT_ALIASES={'WindowsIE6'=>'Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1)','WindowsIE7'=>'Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;.NETCLR1.1.4

ruby-on-rails - 参数缺失或值为空 : user rails 4

当我尝试提交注册表时出现以下错误。参数缺失或值为空:用户defuser_paramsparams.require(:user).permit(:name,:email,:password,:password_confirmation)end请求如下:{"utf8"=>"✓","authenticity_token"=>"YX0+4AeWlGWJiQZgbhV9cxi6TUCoibZfwh95BrK9iCQ=","name"=>"asasa","email"=>"asasas@asas.com","password"=>"[FILTERED]","confirm_password"=>"

ruby-on-rails - rails : how to show user's "last seen at" time?

我正在使用存储current_sign_in_at和last_sign_in_at日期时间的设备。但是假设用户在一个月前登录但最后一次查看页面是在5分钟前?有什么方法可以显示(“5分钟前用户最后一次出现”)。 最佳答案 这个怎么样:创建迁移以向用户添加新字段以存储用户最后一次出现的日期和时间:railsgmigrationadd_last_seen_at_to_userslast_seen_at:datetime向您的应用程序Controller添加一个操作前回调:before_action:set_last_seen_at,if: