gpt4 book ai didi

ruby-on-rails - 用户 first_name last_name 字段创建一个 full_name 字段

转载 作者:行者123 更新时间:2023-11-29 12:29:32 25 4
gpt4 key购买 nike

我的 Rails 模型中目前有 first_namelast_name 字段。我想在我的数据库中添加另一个名为 full_name 的字段,并且想知道无缝执行此操作的最佳方法是什么。请注意,我还有一个正在运行的生产服务器,我想这样做,这样我不仅可以在迁移中添加一列,还可以用现有数据填充新字段。

编辑:

这是我的 Controller

def followers
@title = "Followers"
@user = User.find(params[:id])
@users = @user.followers.paginate(page: params[:page])
@followers = @user.followers.find(:all, :select => 'users.id, users.first_name, users.last_name', :conditions => ["users.first_name like ?","%" + params[:q] + "%"])

respond_to do |format|
format.html {render 'show_follow'}
format.json {render :json => @followers}
end
end

我希望能够 1. select: 'users.id, users.full_name 和 2. :condition =>["users.full_name like ?", ... ] 我能想到的唯一方法就是修改模型。我也只想返回 json 对象中的属性 idfull_name

最佳答案

您最好只在模型中定义一个 full_name 方法:

def full_name                                                                                                                                                                                     
([first_name, last_name] - ['']).compact.join(' ')
end

您可以按全名搜索,例如:

def self.find_all_by_name_containing(text)
self.where("LOWER(first_name || ' ' || last_name) LIKE ?", "%#{text.downcase}%")
end

然后定义你自己的#to_json

关于ruby-on-rails - 用户 first_name last_name 字段创建一个 full_name 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11557125/

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