草庐IT

method_idx

全部标签

ruby-on-rails - rails : Undefined method `truncate' in model

我的模型中有以下方法可以裁剪记录的描述,但由于未知原因截断方法不起作用:defcropped_descriptionnb_words_max=500ifdescription.length>nb_words_maxtruncate(description,:length=>nb_words_max,:separator=>'')+"..."elsedescriptionendend有人看到我做错了什么吗?谢谢。 最佳答案 你用错了,你应该在String上调用这个方法。参见truncate的签名。使用:ifdescription.le

ruby-on-rails - ruby & :method syntax

我遇到了一个错误,我遗漏了这样一个空格@entries=[#true@entries.any?&:submitted?=>false空间如何改变行为。条目.已提交?=>false对于数组中的所有元素,第二行具有所需的行为。 最佳答案 问题是&也是一个具有优先级的一元运算符。当你这样做时:@entries.any?&:submitted?你实际上是这样做的:(@entries.any?)&(:submitted?)结果为真。由于@entries中有条目和符号:提交?真值为真。当你这样做时:@entries.any?&:submitte

ruby-on-rails - rails : Attr accessor undefined method in the setter

我在用户模型中有这行代码:attr_accessor:birthdate在同一个模型中,我有一个尝试通过这样做来设置生日的方法:self.birthdate=mydate其中mydate是一个Date对象。我收到此错误:undefinedmethodbirthdate='为什么会这样?attr_accessor不是创建了setter和getter吗? 最佳答案 让我猜猜,您是从类方法中调用setter的,对吧?classFooattr_accessor:bardefset_barvalself.bar=val#`self`isani

ruby-on-rails - 类型错误 : Object doesn't support this property or method

我创建了Rails应用程序,我在其中创建了一个数据库(空)。当我尝试查看我的产品页面时,我在http://localhost:3000/products上收到以下错误页。在迁移数据库之前,应用程序可以正常运行。我正在使用therubyracer并且在Windows7上。ExecJS::ProgramErrorinProducts#indexShowingC:/RailsInstaller/DevKit/home/JP/nameofapp/app/views/layouts/application.html.erbwhereline#16raised:TypeError:Objectdo

ruby-on-rails - Rails 3 +Devise + RSpec : undefined method 'visit'

我遇到了一个奇怪的问题。我以前从未使用过Devisegem。所以,我尝试编写简单的RSpec测试:require'spec_helper'describe"Admins"dobefore(:each)do@email="test@test.ru"user=FactoryGirl.create(:user,:email=>@email)enddescribe"signin/out"dodescribe"success"doit"shouldsignauserinandout"dovisitnew_user_session_pathendendendend我收到这样的错误:1)Admins

ruby - 访问 self.method_added 中的变量名

我相信Ruby,有一种方法可以访问block中所有局部变量的名称。defsome_method(param1,param2)plocal_variablesend每当调用“some_method”时,param1和param2将被打印出来。不是值(value)!但是变量名。现在,我想在self.method_added内实现相同的结果。只要定义了一个方法,就会调用self.method_added。我希望能够访问在self.method_added中定义的方法的局部变量的名称。例如,defself.method_added(method_name)#printsthevariables

ruby-on-rails - Heroku "at=error code=H10 desc="应用程序崩溃“method=GET path=/favicon.ico”

我有一个简单的Rails应用程序,可以在本地主机(MacOSX)上正常运行,但是当我将它部署到Heroku时,我看到一个页面出现此错误:应用程序错误应用程序发生错误,无法提供您的页面。请稍后重试。如果您是应用程序所有者,请查看您的日志以了解详细信息。我真的不知道我在这里做什么;我无法理解herokulogs的输出:2013-04-08T03:25:02+00:00app[web.1]:=>BootingWEBrick2013-04-08T03:25:02+00:00app[web.1]:=>Rails3.2.12applicationstartinginproductiononhttp

ruby-on-rails - 从 Rails 4.1.4 更新到 4.2.0 后,AR CollectionProxy 上的 "first!"引发 "undefined method [] for nil"

我开始从Rails4.1.4升级到Rails4.2.0。好像是第一!不再支持某些事件记录关联。first!(在ActiveRecord::Associations::CollectionProxy上)发生了什么导致它现在失败?如何修复该行为,使其像在4.1.4中一样工作?rails4.1:(byebug)user.organization.registration_codes#]>(byebug)user.organization.registration_codes.first!#rails4.2:(byebug)user.organization.registration_code

ruby - define_method 带有预定义的关键字参数

我想定义一个接受关键字参数的方法。我希望它在未提供关键字参数时引发,我可以自己编写代码-但理想情况下我想让Ruby为我做这件事。此外,我希望能够使用Method#parameters检查新定义的方法。如果我使用速记双标(如**kwargs),我期望的实际结构对parameters不可见。我当然可以这样做:define_method(:foo)do|foo:,bar:|#...end达到预期效果:method(:foo).parameters#=>[[:keyreq,:foo],[:keyreq,:bar]]但我无法以编程方式传递这些参数,它们必须按字面意思放在代码中。有什么办法可以绕过

ruby-on-rails - Rails 控制台错误 : undefined method `each' for nil:NilClass (NoMethodError)

在我的Rails应用程序的根目录中运行railsconsole的任何尝试都会产生以下错误:undefinedmethod`each'fornil:NilClass(NoMethodError)完整的堆栈跟踪:/Users/gnerkus/.rvm/gems/ruby-2.2.3@rails-experiments/gems/railties-5.0.0.beta1.1/lib/rails/railtie.rb:245:in`each_registered_block':undefinedmethod`each'fornil:NilClass(NoMethodError)from/Use