Rails控制器操作redirect_to刷新页面

时间:2012-08-21 08:44:24

标签: ruby-on-rails redirect controller action

我希望我的页面在创建记录后刷新,此时它会将其指向页面。这是我的控制器的代码:

def create
@license = License.new(params[:license])

respond_to do |format|
  if @license.save
    format.html { redirect_to :controller => 'customers', :action => 'index' }
    format.json { render json: @customer, status: :created, location: @customer }
  else
    format.html { render action: "new" }
    format.json { render json: @customer.errors, status: :unprocessable_entity }
  end

end

其中显示redirect_to我需要刷新或链接到当前页面,其中包含当前ID,该ID为:controller => 'customers', :action => 'show'但具有当前页面记录的ID 。

2 个答案:

答案 0 :(得分:2)

尝试

redirect_to customer_path(@license.id)

代替。

根据您的routes.rb文件所说的内容,它应该有效。

但如果没有,请尝试:

redirect_to show_customer_path(@license.id)

但是,在这里我必须假设您的customers_controller.rb以某种方式显示许可证模型中的记录。如果许可证和客户是单独的模型,则必须以其他方式查找customer_id。

也许,它是:

redirect_to customer_path(@license.customer_id)

如果许可证未以任何方式与客户相关联,您将需要将其作为邮寄请求的一部分传递。

答案 1 :(得分:0)

尝试, 我认为你将customer_id传递给params(被许可人属于客户),如果是的话  redirect_to customer_path(@license.customer)redirect_to customer_path(params[:customer_id])