我目前的数据库设置如下:https://gist.github.com/8dfad988528fc9fc394
我只想在不存在类似主机的情况下创建一个主机(匹配:主机和:port),然后我想将主机的关系添加到关系表。
多个用户可以拥有一个主机, 或者一个主机可以属于多个用户 。 我目前的数据库设置和关系正在创建中, 我只是不确定如何在铁路上优雅地做到这一点 。 我通过手工输入数据库中的数值来测试到这一点, 比如 :
@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)
是否有更好的办法做到这一点,如果是这样的话,那会是什么。
Solution
@host = Host.where(host: params[:host], port: params[:port]).first_or_create
@host.users << User.find(1)