次のモデルがあります。
User (id, name, network_id)
Network(id, title)
どんな種類のRails model assocは私ができるように追加する必要がありますか:
@user.network.title
@network.users
ありがとう
したがって、ネットワークhas_many
ユーザーとユーザーbelongs_to
ネットワーク。
まだ[network_id
]を追加していない場合は、usersテーブルにforeign_key
を追加するだけです。
Rails generate migration AddNetworkIdToUsers
class AddNetworkIdToUsers < ActiveRecord::Migration
def change
add_column :users, :network_id, :integer
add_index :users, :network_id
end
end
ネットワークモデルで次の操作を行います。
class Network < ActiveRecord::Base
has_many :users
end
ユーザーモデルで次の操作を行います。
class User < ActiveRecord::Base
belongs_to :network
end
データベースの設定によると、次の行をモデルに追加するだけです。
class User < ActiveRecord::Base
belongs_to :network
# Rest of your code here
end
class Network < ActiveRecord::Base
has_many :users
# Rest of your code here
end
Network_idを使用しない設定の場合、danielsの回答を使用する必要があります。
これは私のやり方です:実行:
$Rails generate migration AddNetworkIdToUsers
次に設定移行ファイル:
class AddNetworkIdToUsers < ActiveRecord::Migration[5.1]
def up
add_column :users, :network_id, :integer
add_index :users, :network_id
end
def down
remove_index :users, :network_id
remove_column :users, :network_id
end
end