gpt4 book ai didi

ruby-on-rails - 在 Ruby on Rails 中推送到数组

转载 作者:数据小太阳 更新时间:2023-10-29 08:36:20 25 4
gpt4 key购买 nike

我正在尝试在我的模型中创建一个字符串数组,我可以在其中将新字符串 (ID) 推送到字符串数组中 - 但它没有推送正确的值。

这是模型的样子:

class CreateCompanies < ActiveRecord::Migration
def change
create_table :companies do |t|

t.string :name
t.string :email
t.string :users, array: true, default: []
t.timestamps null: false
end
end
end

下面是我如何将新值添加到 Controller 中的数组:

c = Company.new
c.users << @user.id
c.save

一个值确实被添加到数组中,但它不是 ID,而是像这样的一些随机值:

users: "--- []\n\u{478A6}"

现在已经坚持了几天 - 有人知道我错过了什么吗?

更新:添加了我创建新公司的代码

 def create
@user = User.new(user_params)
if @user.save

@user.id = SecureRandom.random_number(999999)
session[:user_id] = @user.id

c = Company.new
c.id = SecureRandom.random_number(999999)
c.name = @user.company_name
c.email = "email goes here"
c.users << @user.id
c.save

@user.company_id = c.id
@user.save

redirect_to '/dashboard'
else
redirect_to '/'
end
end

最佳答案

如果你想建立一个一对多的关系,你应该做的是在 users 表中添加一个 company_id 字段,添加 belongs_to :company 到您的 app/models/user.rb 并将 has_many :users 添加到您的 app/models/company.rb

然后您就可以根据需要访问用户。

更新

如果你想和用户一起创建公司,你可以这样做。

@user.company = Company.create name: 'Some name'

或者更好地避免重复。

@user.company = Company.find_or_create_by name: 'Some name'

关于ruby-on-rails - 在 Ruby on Rails 中推送到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36606492/

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