Yeni dizeleri (ID) dize dizisine itebiliyorum, ancak benim modelimin içinde bir dize dizisi oluşturmaya çalışıyorum - ancak doğru değerleri itmiyor.Ruby on Rails bir dizide iterek
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
Ve burada Denetleyici'yi diziye yeni değerler ekleyerek ediyorum nasıl: Bir değer gerçekten eklenen olsun demek
c = Company.new
c.users << @user.id
c.save
İşte
modeli böyle görünüyor
users: "--- []\n\u{478A6}"
için bu sıkışmış Been: dizi, ama böyle kimlik ama sadece bazı rastgele değer değil Şimdi birkaç gün - eksik olanı bilen var mı?
GÜNCELLEME: Eklendi seni çok ilişkisi pek inşa etmek isteyen buraya acaba
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
Görüyorum! Kullanıcılar tablosuna sadece bir company_id sütunu eklemek yeterli mi?Daha sonra bir Şirkete ait olan tüm kullanıcıları nasıl alabilirim? –
Açıkladığım 3 adımı doldurmanız gerekiyor. Daha sonra 'company.users' olarak adlandırılabilir ve ActiveRecord bir sorgu yapar ve çoğunlukla bir dizi kullanıcı gibi davranan bir ActiveRecord :: Relation nesnesini döndürür. – Almaron
Aha! Şu anda yeni bir Kullanıcı oluşturulduğunda Kullanıcı sınıfında yeni bir Şirket oluşturuyorum. (yukarıdaki kodla birlikte) Sonra onları nasıl bağlarım? –