我刚刚在Rails 5上安装了activeadmin 1.0.0.pre4。
因此,初始设置进行得很好,但我的问题是,我创建了一个名为District的新模型,并通过运行
rails generate active_admin:resource district
我在activeadmin仪表板菜单中看到了Districts菜单选项,但是当我单击它时,我得到了这个错误(url :3000/admin/ menu )
以下是终端的全部输出:
Started GET "/admin/districts" for ::1 at 2016-12-02 17:58:23 -07
我有以下Ruby代码:
class B
class << self
protected
def prot
puts "victory"
end
end
end
class C < B
def self.met
C.prot
end
end
C.met
它试图证明受保护的类方法是在Ruby中继承的。问题是,如果我将met方法转换为这样的实例方法:
class B
class << self
protected
def prot
puts "victo
我正在创建一个Word类,但收到一个错误:
TypeError:类Word的超类不匹配
下面是irb代码:
irb(main):016:0> class Word
irb(main):017:1> def palindrome?(string)
irb(main):018:2> string == string.reverse
irb(main):019:2> end
irb(main):020:1> end
=> nil
irb(main):021:0> w = Word.new
=> #<Word:0x4a8d970>
在Rails中,我创建了新的表。
class Post < ActiveRecord::Base
end
然后我创造了新的记录。当调用Post.create时,create是在persistance.rb中定义的方法。
Post.method(:create).source_location
=> #["D:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/activerecord-4.2.5.2/lib/active_record/persistence.rb", 29]
类Base是在同一目录中的base.rb中定义的。
假设查看文件、模
我刚做了这个实验:
class A < Hash
def foo
'foo'
end
end
class A < Hash
def bar
'bar'
end
end
到目前为止,我得到了预期的结果,第二个声明扩展了第一个声明。然而,我对此感到惊讶:
class A
def call
puts foo
puts bar
end
end
上面的代码起作用,但前提是我以后声明它。否则我会得到:
TypeError: superclass mismatch for class A
我是否可以假设在
我使用 gem来进行类表继承(CTI)。我有两个类Person(抽象类)和Client(继承Person)。
问题:
当我尝试make rake db:migrate时,控制台编写了以下错误:
StandardError: An error has occurred, this and all later migrations canceled:
no implicit conversion of nil into String ../postgresql/utils.rb:24:in `quote_ident'
模范人
class Person < ActiveRec
我将我的Rails版本3.2.3更新到3.2.6。运行服务器后,出现以下错误:
=> Booting WEBrick
=> Rails 3.2.6 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.6/lib/active_record/dynamic_matchers.rb
我见过和其他几个问题,但他们的问题与我的不同。
我在config/boot.rb中添加了以下代码,以便在端口8081上运行我的服务器
module Rails
class Server
def default_options
super.merge({Port: 8081})
end
end
end
然后我尝试运行rails s,并面对这个错误:
/usr/local/rvm/gems/ruby-2.2.1/gems/railties-4.2.4/lib/rails/commands/server.rb:7:in `<module:Rails>&
我制作了以下示例来演示。如果我在Song和KarokeSong类中都使用了name,我会得到一个错误。
class Song
def initialize(name, artist, duration)
@name = name
@artist = artist
@duration = duration
end
def to_s
"Song: #{@name}--#{@artist} (#{@duration})"
end
end
class KarokeSong < Song
def initalize(name,
我正在Ubuntu10.04LTS上工作,Lynx已经在它上安装了Rails 3。我无法启动Rails服务器。我得到了以下错误。
mah@mah-laptop:~/Desktop/projects/ver$ rails s
/home/mah/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.8/lib/rails/commands.rb:29:in `block in <top (required)>': undefined method `root' for nil:NilClass (NoMethodError)
from /
来自
Module#append_features( mod ) =>当这个模块包含在另一个模块中时,Ruby在这个模块中调用append_features,在mod中将接收模块传递给它。Ruby的默认实现是将该模块的常量、方法和模块变量添加到mod中,如果该模块尚未添加到mod或其祖先之一中。
Module#prepend_features( mod ) =>当这个模块在另一个模块中时,Ruby在这个模块中调用prepend_features,在mod中把接收模块传递给它。Ruby的默认实现是覆盖该模块的常量、方法和模块变量,如果该模块尚未添加到mod或其祖先之一,则为mod。
我一直在阅读基础良好的Rubyist,它提到了一个类如何继承其超类的实例方法,以便该类的对象能够调用这些实例方法。下面是一个例子:
class C
def run_instance_method
puts "This is an instance method."
end
def C.run_class_method
puts "This is a class method."
end
end
class D < C
end
根据我所读到的内容,人们总是说类D将只继承类C的实例方法(在这种情况下,D不会继承C::run_c
好吧,我试着用Ruby做一些元编程,我有点困惑了。根据我读过的几篇文章(如),为了动态地向Ruby类添加类方法,您必须使用该类的单例类:
class Klass
end
class << Klass
self.define_method(:foo) { return "foo" }
end
这是为什么,这与此有何不同?
class Klass
self.define_method(:foo) { return "foo" }
end
(很抱歉,如果这个问题包含任何错误的假设。就像我说的,我有点困惑。)
我有一个名为"User“的模型,它与"Address”模型有许多关联。
当我执行User.new.addresses.build时,我得到以下错误:
ArgumentError: wrong number of arguments (1 for 0)
from /usr/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/reflection.rb:162:in `initialize'
from /usr/lib/ruby/gems/1.8/gems/activerecord-
在阅读之前。我是Ruby的新手,我试着通过例子和练习来学习。我发现了一些运动,我被困在里面了。
编写一个Ruby程序来模拟酒店房间。用户将进入,发出一张票,退出,当然支付。
基本需要的方案:
如果有足够的房间,用户可以进入酒店。用户可以退出,如果它的付费用户已经在酒店,不能再次进入之前退出。我就是这样做的:
class Hotel < User
attr_accessor :room
def initialize(room)
@room = []
super(name)
end
def on_
我是Ruby的新手。我有一个关于在Ruby中使用继承的问题。
我在一个名为Doggy.rb的文件中有一个名为Doggy的类
class Doggy
def bark
puts "Vicky is barking"
end
end
我在另一个名为puppy.rb的文件中编写了另一个名为Puppy的类
class Puppy < Doggy
end
puts Doggy.new.bark
我得到了这个错误:
Puppy.rb:1:in `<main>': uninitialized constant Doggy (NameError)
是
如果我有下面这段Ruby代码:
class Blah
def self.bleh
@blih = "Hello"
@@bloh = "World"
end
end
@blih和@@bloh到底是什么?@blih是Blah类中的一个实例变量,而@@bloh是Blah类中的一个类变量,对吗?这是否意味着@@bloh是Blah的class类中的一个变量?