Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
如何在RubyonRails中创建英语语言列表(name1、name2和name3)?_Ruby_String - Fatal编程技术网

如何在RubyonRails中创建英语语言列表(name1、name2和name3)?

如何在RubyonRails中创建英语语言列表(name1、name2和name3)?,ruby,string,Ruby,String,很可能我错过了rails的魔力,但我猜它将出现在Ruby中 我有一个叫Company的模型,它有很多联系人 假设公司有联系人1、联系人2、联系人3和联系人4 当我为每个联系人创建textblog时,我希望输出以下内容(其中Contact=Contact 1) “嗨,联系1, 我还写信给联系人2、联系人3和联系人4。” 因此,它需要提取问候语中的联系人,然后列出他们,在列表中最后一个联系人之前插入“and” 编辑 我现在有以下资料: contacts = Company.contacts.coll

很可能我错过了rails的魔力,但我猜它将出现在Ruby中

我有一个叫Company的模型,它有很多联系人

假设公司有联系人1、联系人2、联系人3和联系人4

当我为每个联系人创建textblog时,我希望输出以下内容(其中Contact=Contact 1)

“嗨,联系1, 我还写信给联系人2、联系人3和联系人4。”

因此,它需要提取问候语中的联系人,然后列出他们,在列表中最后一个联系人之前插入“and”

编辑

我现在有以下资料:

contacts = Company.contacts.collect(&:name)

contacts.each do |contact|
   other_contacts = contacts.reject{ |c| c==contact }
   p "Hi, #{contact}, I am also writing to #{other_contacts.to_sentence}"
end
这在contacts_controller.rb中

  def full_name
   [self.first_name, self.last_name].compact.join(" ")
  end
在contact_letters_controllers.rb中(contact_letters是带有字母的已执行联系人)

我相信这就是你要找的

您可以尝试以下方法:

contacts = Company.contacts.collect(&:name)

contacts.each do |contact|
   other_contacts = contacts.reject{ |c| c==contact }
   p "Hi, #{contact}, I am also writing to #{other_contacts.to_sentence}"
end
我没有测试这段代码,所以如果这不起作用,请原谅我

编辑

此方法将返回联系人的全名。如果您还有一个
middle\u name
属性,则可以添加到数组中。如果任何属性为
nil
,此方法仍然有效

def full_name
   [self.first_name, self.last_name].compact.join(" ")
end
我相信这就是你要找的

您可以尝试以下方法:

contacts = Company.contacts.collect(&:name)

contacts.each do |contact|
   other_contacts = contacts.reject{ |c| c==contact }
   p "Hi, #{contact}, I am also writing to #{other_contacts.to_sentence}"
end
我没有测试这段代码,所以如果这不起作用,请原谅我

编辑

此方法将返回联系人的全名。如果您还有一个
middle\u name
属性,则可以添加到数组中。如果任何属性为
nil
,此方法仍然有效

def full_name
   [self.first_name, self.last_name].compact.join(" ")
end

非常接近…一个挑战。联系人有:first_name和:last_name,如何将它们聚合为一个:full_name?您可以在您的
联系人
模型中添加
full_name
方法。请看我编辑的答案……嗨,谢谢——那么我该把方法放在哪里呢?我已经编辑好了来展示我所做的…谢谢。此更改创建了一个未定义的方法:未定义的方法'full_name'您必须将该方法置于
Contact
model。非常接近…一个挑战。联系人有:first_name和:last_name,如何将它们聚合为一个:full_name?您可以在您的
联系人
模型中添加
full_name
方法。请看我编辑的答案……嗨,谢谢——那么我该把方法放在哪里呢?我已经编辑好了来展示我所做的…谢谢。此更改创建了一个未定义的方法:未定义的方法“全名”您必须将该方法放在
联系人
模型上。