0

你们是怎么处理这些的?比较两个人时,但使用他们的性别特定代词?“鲍勃喜欢史黛西。他一直很想念她,还有她的长发。她不喜欢鲍勃,他那令人毛骨悚然的眼神……”

所以,Bob 是数据库中的一个实体,Stacy 也是。bob = User.find_by_name('Bob')stacy = User.find_by_name('Stacy')bob.gender返回男性,stacy.gender返回女性。

上面的引用也来自数据库中的一个实体。 Match.find(23).body. 我想在数据库中放一些通用的东西,让它可以填充,但它似乎不起作用。 @p1.first_name likes @p2.first_name. @p1.She has always longed for @p2.her, and @p2.her_p long hair. @p2.She doesn't like @p2.first_name, and @p2.her_p creepy stares...在这里,我有以女性代词为名称并返回实际名称的方法。

在控制器中,@dislike = Match.find(23).body@p1 = bob@p2 = stacy对吗?

在看来,<%= @dislike %>

这是行不通的。我还查看了 gsub,并进行了相应的剥离。我可以让它工作。我只是好奇其他人是如何处理这种情况的,或者我是否把它复杂化了。

4

2 回答 2

0

如果您使用的是数据库,只需将一列添加到性别的名称表中,如果您要使用布尔字段,那么您可以这样做。

name_a = some_db_query_for_name
if name_a.gender = true:
    a = "she"
else:
    a = "he"

然后在你的模板中只是参考

@name_a likes @name_b, @a is ...

对不起,它不是 ruby​​/rails 代码,但我看到了这个问题,这似乎是解决它的最佳方法。

于 2013-03-08T19:43:02.987 回答
0
def rend(p1, p2)
  body = self.body
  body = body.gsub(/p1.first_name/, p1.first_name)
  body = body.gsub(/p2.first_name/, p2.first_name)
  if p1.gender == 'male'
    body = body.gsub(/p1.she/, 'he')
    body = body.gsub(/p1.her_p/, 'his')
    body = body.gsub(/p1.her/, 'him')
    body = body.gsub(/p1.herself/, 'himself')
    body = body.gsub(/p1.hers/, 'his')
    body = body.gsub(/p1.She/, 'He')
    body = body.gsub(/p1.Her_p/, 'His')
    body = body.gsub(/p1.Her/, 'Him')
    body = body.gsub(/p1.Herself/, 'Himself')
    body = body.gsub(/p1.Hers/, 'His') 
  end
  if p1.gender == 'female'
    body = body.gsub(/p1.she/, 'she')
    body = body.gsub(/p1.her_p/, 'her')
    body = body.gsub(/p1.her/, 'her')
    body = body.gsub(/p1.herself/, 'herself')
    body = body.gsub(/p1.hers/, 'hers')
    body = body.gsub(/p1.She/, 'She')
    body = body.gsub(/p1.Her_p/, 'Her')
    body = body.gsub(/p1.Her/, 'Her')
    body = body.gsub(/p1.Herself/, 'Herself')
    body = body.gsub(/p1.Hers/, 'Hers')
  end
  if p2.gender == 'male'
    body = body.gsub(/p2.she/, 'he')
    body = body.gsub(/p2.her_p/, 'his')
    body = body.gsub(/p2.her/, 'him')
    body = body.gsub(/p2.herself/, 'himself')
    body = body.gsub(/p2.hers/, 'his')
    body = body.gsub(/p2.She/, 'He')
    body = body.gsub(/p2.Her_p/, 'His')
    body = body.gsub(/p2.Her/, 'Him')
    body = body.gsub(/p2.Herself/, 'Himself')
    body = body.gsub(/p2.Hers/, 'His')
  end
  if p2.gender == 'female'
    body = body.gsub(/p2.she/, 'she')
    body = body.gsub(/p2.her_p/, 'her')
    body = body.gsub(/p2.her/, 'her')
    body = body.gsub(/p2.herself/, 'herself')
    body = body.gsub(/p2.hers/, 'hers')
    body = body.gsub(/p2.She/, 'She')
    body = body.gsub(/p2.Her_p/, 'Her')
    body = body.gsub(/p2.Her/, 'Her')
    body = body.gsub(/p2.Herself/, 'Herself')
    body = body.gsub(/p2.Hers/, 'Hers')
  end

  body
end
于 2013-03-08T20:46:27.373 回答