我有一个客户控制器和付款控制器。创建客户后,我想自动重定向到新的付款表单,并将客户ID传递给付款。
在客户模型中:
has_many :payments
在付款模式中:
belongs_to :client
在客户端控制器中:
def create
@client = Client.new(client_params)
respond_to do |format|
if @client.save
format.html { redirect_to new_payment_url (:client_id => @client.id) }
format.json { render action: 'show', status: :created, location: @client }
else
format.html { render action: 'new' }
format.json { render json: @client.errors, status: :unprocessable_entity }
end
end
结束
在付款控制器中
def new
@payment = Payment.new
@client = Client.where(:id => params[:client_id])
end
当我创建客户时,它会重定向到新的付款表单,但客户ID不会传递。当我尝试保存该笔付款时,出现错误消息,提示客户不能空白。
我知道您必须先保存对象才能将对象传递给另一个控制器,但我的理解是:i)我不尝试传递整个客户端对象,只是id和ii)不@ client.save将对象保存到数据库,然后执行并执行以下代码行?
我对所有这些都有些困惑,因此不胜感激。
尝试更改此行
format.html { redirect_to new_payment_url (:client_id => @client.id) }
看起来像这样
format.html { redirect_to new_payment_url(:client_id => @client.id) }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句