gpt4 book ai didi

ruby-on-rails - 将额外数据传递给 find_or_create

转载 作者:行者123 更新时间:2023-12-03 21:35:13 35 4
gpt4 key购买 nike

我一直对 rails 感到疑惑的是,它能够将额外数据传递给 rails 中的 find_or_create 方法。例如,我不能执行以下操作

User.find_or_create_by_name('ceilingfish', :email => 'an_email@a.domain', :legs => true, :face => false)

我可以
u = User.find_or_create_by_name('ceilingfish')
u.update_attributes(:email => 'an_email@a.domain', :legs => true, :face => false)

但这更难看,而且还需要三个查询。我想我可以
User.find_or_create_by_name_and_email_and_face_and_legs('ceilingfish','an_email@a.domain',true, false)

但这意味着我知道 email 的值是多少。 , legsface是。有谁知道是否有一种非常优雅的方式来做到这一点?

最佳答案

尝试这个:

User.find_or_create_by_name(:name=>'ceilingfish', 
:email => 'an_email@a.domain', :legs => true, :face => false)

当您对 find_or_create_by_ 有附加参数时,您必须将所有参数作为哈希传递。

rails 4
  User.create_with(
email: 'an_email@a.domain',
legs: true, face:false
).find_or_create_by(:name=>'ceilingfish')

关于ruby-on-rails - 将额外数据传递给 find_or_create,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2394489/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com