作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试在我的模型中创建一个字符串数组,我可以在其中将新字符串 (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/
我是一名优秀的程序员,十分优秀!