Похоже, что ваш фрагмент кода является вашим новым шаблоном (т. "Приложение/просмотров/предприятия/new.html.erb"). Это следует использовать только тогда, когда вы хотите создать новый объект. Ваш контроллер, вероятно, говорит что-то вроде
def new
@new_business = Business.new
end
Когда форма отправлена,: создать действие в контроллере будет вызываться, который должен создать новую запись в базе данных.
Если вы хотите отредактировать этот объект, вы используете действие редактирования в своем контроллере, соответствующее представлению edit.html.erb. Что-то вроде этого в контроллере:
def edit
@business = Business.find(params[:id])
end
с похожим видом на тот, который вы указали выше, на вид. Когда эта форма отправлена, она должна перенаправляться на: действие обновления в вашем контроллере, которое обновляет существующую запись в базе данных.
Сложная часть того, что вы пытаетесь выполнить, ограничивает каждого пользователя только возможностью создания одной записи в базе данных. Существует много способов сделать это, но общая идея заключалась бы в ограничении доступа пользователя к новому и создании действий в контроллере после того, как они уже создали запись. Вы можете сделать это, используя before_action (при использовании Rails 4.0 или выше) или before_filter (при использовании Rails < 4.0), чтобы вызвать метод, который проверяет, создал ли пользователь запись.
Не могли бы вы выслать свой код для своего контроллера? У вас должно быть отдельное действие для редактирования объекта или создания нового. – rockusbacchus