これが私の現在のデータベース設定です: https://gist.github.com/8dfad988528fc9fbc394
そのようなホストがまだ存在しない場合にのみホストを作成し (:host と :port で一致)、そのホストの関係を関係テーブルに追加したいと考えています。
複数のユーザーが 1 つのホストを所有することも、1 つのホストが複数のユーザーに属することもできます。私の現在のデータベース設定は機能し、リレーションが作成されました。Rails でこれをうまく行う方法がわかりません。この時点まで、次のようにデータベースに値を手動で入力してテストしました。
@host = Host.find_or_create_by_host(host: params[:host], port: params[:port])
@user = User.find(1)
@user.relation.create(user_id: @user.id, host_id: @host.id)
これを行うためのより良い方法はありますか?
解決
@host = Host.where(host: params[:host], port: params[:port]).first_or_create
@host.users << User.find(1)