В итоге я решил свою проблему с помощью набора ответов, поэтому спасибо за вашу помощь.
Я думал, что, если я добавлю router_id
в monument_params
, рельсы выберут параметр сто же имя и создаст ассоциацию самостоятельно, но, похоже, что Rails нужен объект, а не идентификатор.Так что это было мое решение:
- В моей форме памятника у меня есть выбор, чтобы выбрать Маршрутизатор
<%= f.select :router_id, Router.all.collect { |s| [s.mac_address, s.id]}, {}, {class:"routerSelect", include_blank: true} %>
- Затем в моем
monuments_controller
всоздать и обновить метод я делаю так:
def create
@monument = Monument.new(monument_params)
@monument.router = Router.find(params[:monument][:router_id])
if @monument.save
...
end
def update
if @monument.update(monument_params)
@monument.router = Router.find(params[:monument][:router_id])
...
end
Это не лучшее решение, но оно решает мою проблему.Спасибо