将参数传递给新控制器

Passing params to new controller

我创建了一个简单的登陆页面来收集订阅模型中的电子邮件地址。

提交后,订阅被创建,用户被重定向到感谢页面,该页面路由到 subscriptions/thanks。

我想把新创建的id传给感谢页面,比如subscriptions/:id/thanks,这样我就可以访问到感谢页面新创建的订阅了。

代码未测试

在路由文件中:

resources :subscriptions do
  member do
    get :thanks
  end
end

然后在控制器中创建一个包含感谢路由的方法。

def thanks
  # thanks code will be here
end

处理数据后在您的控制器中将用户重定向到

redirect_to thanks_subscription_path(@YourSavedObject), notice: 'Some message'

到此为止。

PS:我不喜欢这种方式。解耦比到处乱扔变量要好一些。重复太多了。

路由说明

我从这里学习了所有的路由:http://guides.rubyonrails.org/routing.html很棒的来源。

干杯,祝你好运。

谢谢H先生!

这是我所做的,似乎效果不错。我不太懂路由,所以任何意见表示赞赏:

在路线中:

  resources :subscriptions

得到'subscriptions/:id/thanks' => 'subscriptions#thanks',如:'thanks'

订阅控制器:

def thanks
    @invite = Invite.new
    @subscription = Subscription.find(params[:id])
  end

创建动作

if @subscription.save
        format.html { redirect_to thanks_path(@subscription), notice: 'Subscription was successfully created.' }
        format.json { render :show, status: :created, location: @subscription }
      else