基本上我的想法很简单 - 我想为每个新用户创建一个新的购物车。表格本身是用脚手架生成的,我们在这里谈rails 4.0.1
。
有没有办法做到这一点,如果是这样 - 怎么样?也许你可以给我链接一些实例?
答案 0 :(得分:0)
在Rails控制器中创建多个对象不需要多个表单。假设你有这样的关系:
class User < ActiveRecord::Base
has_many :carts #or has_one :cart
end
class Cart < ActiveRecord::Base
belongs_to :user
end
然后完全可以接受这样做:
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new user_params
if @user.save
@user.carts.create # or @user.create_cart
redirect_to user_path
else
render action: :new
end
end
private
def user_params
params.require(:user).permit(...)
end
end
如果新用户表单恰好包含某些特定于购物车的详细信息,请使用fields_for
在表单中提供这些信息:
= form_for :user do |f|
... f.blah for user fields ...
= fields_for :cart do |cart_fld|
... cart_fld.blah for cart fields ...
并将cart_params
添加到您的控制器。