Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 检索';名称';来自model.model.name_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 检索';名称';来自model.model.name

Ruby on rails 检索';名称';来自model.model.name,ruby-on-rails,ruby,Ruby On Rails,Ruby,我想通过模型事件从模型组织者获取名称值 我的班级组织者: class Organiser < ActiveRecord::Base belongs_to :customer has_many :events end 在Grails中,这是一个简单的调用: def eventInstance = Event.find.... def organiserInstance = eventInstance.organiser OrganizerInstance.name给了我组织者的

我想通过模型
事件
从模型
组织者
获取名称值

我的班级
组织者

class Organiser < ActiveRecord::Base
  belongs_to :customer
  has_many :events
end
在Grails中,这是一个简单的调用:

def eventInstance = Event.find....

def organiserInstance = eventInstance.organiser
OrganizerInstance.name
给了我组织者的名字

这在RubyonRails中是如何实现的?我试过:

@orgName = @eventInstance.organiser.name
但是我得到了一个错误:

undefined method `organiser' for #<Event::ActiveRecord_Relation:0x007f86152ef098>
的未定义方法“Organizer”#

该错误意味着您的
@eventInstance
实际上是一个集合,而不是单个实例

您需要首先将
@eventInstance
设置为
事件
模型的单个实例。那么您的代码就可以工作了:

@eventInstance = Event.first
@orgName       = @eventInstance.organizer.name
p.S.Ruby约定使用snake case而不是camel case调用变量:

@event_instance = Event.first
@org_name       = @event_instance.organizer.name

不,不是。这是一个单一的例子@eventInstance=Event.where(eventcode:session[:key])给了我一个record@diedaaf它为您提供了一个包含单个记录的集合。您希望将其设置为
Event.where(eventcode:session[:key])。首先
获取单个记录。Event.where(evencode:session[:key]给了我一张记录,因为只有一个记录key@diedaaf你读过我写的东西吗?返回给你一个集合。只要照我的建议去做,并确保它是你所需要的。我链接了文档,如果你喜欢的话请通读。我的观点是正确的。第一个是方法。这与Grails不同;-)谢谢!!真的,真的很肤浅的挑剔:Rails都是关于约定而不是配置的,当你坚持它的命名约定()时,它真的很有冲击力。你肯定会避免未来,否则,如果你遵循它,头痛是可以避免的。:)
@event_instance = Event.first
@org_name       = @event_instance.organizer.name