Кажется, у тебя много неприятностей, или, может быть, я что-то упустил.Способ ActiveRecord - imho, либо вручную
payment = Payments.new
payment.orderid = session[:ordersid]
payment.totalcost = session[:totalcost]
payment.paytype = 1
payment.paystatus = "complete"
payment.userid = 1
payment.storeid = 1
payment.save
Теперь, если у вас есть форма, заполняющая эти поля, это еще проще:
payment = Payment.new(params[:payment])
payment.save
Так что нетнужно для автоинкрементного поля.Если вы указали, что "ordersid" является идентификатором, вы все равно можете установить значение вручную, что отменит стандартное поведение рельсов (если вы не определили поле как автоинкрементное в базе данных).1009 * статья , показывающая, как использовать uuids вместо автоинкремента.
У меня есть замечание, когда я вижу этот код.Обычно для userid
и storeid
можно использовать встроенные реляционные возможности, встроенные в рельсы.Например, если платеж связан с пользователем, вы либо делаете
user.payments.build(params[:payment])
, а затем вновь созданный платеж автоматически связывается с пользователем.Или
payment.user = current_user
, если в вашей модели будет что-то вроде
belongs_to :user
.Может быть, вы уже знаете обо всем этом, что трудно сделать из вашего вопроса.