如何使用表单连接has_one与条件的关系

我有一个has_one通过关系,条件连接我的应用程序中的旅行和地址。 每次旅行都有两个地址:起点和目的地。 地址可用于许多不同的旅行,可以是起点或目的地。

在应用程序中,行程和地址通过名为TripLocation的模型连接,该模型作为布尔列“目标”设置地址是否作为行程的目的地。 要查看有关该关系的更多信息,请参阅我之前提出的有关同一应用程序的问题: 在分配不同角色时在Rails中执行Has_many

我希望应用用户在创建旅行时从源和目的地的可能地址列表中进行选择。 这就是我所拥有的,我知道这是不正确的:

    #other trip things here like date and time  

(最终我将限制Address.all的地址选择,但是现在我希望这个版本能够工作。)

当我尝试从此表单提交时,我收到以下错误消息:

 NoMethodError in TripsController#create undefined method 'id' for "1":String 

所以这似乎是期望有一个对象(带有id)而不是包含对象id的字符串。 我知道数据库中应该出现哪些新条目以正确连接所有内容,但我不确定如何使用rails来实现目标,并且我很感激任何信息都指向了正确的方向。

编辑:以下是trips_controller中创建操作的代码:

 def create @trip = Trip.new(trip_params) if @trip.save redirect_to @trip, notice: 'Trip was successfully created.' else render action: 'new' end end 

由于这是Rails 4,trip_params是以下私有方法:

 def trip_params params.require(:trip).permit(:origin, :destination, :pickup_date, :pickup_time, :dropoff_date, :dropoff_time, :user_id, :company_profile_id, :vehicle_id) end 

现在我想知道是否需要在控制器中构建一个新的TripLocation对象,然后使用嵌套的表单同时进行Trip和TripLocation?