2015-01-15 56 views
0

由于业务逻辑的原因,我希望我的Rails应用程序中的某些资源能够以各种形式创建和更新。因此,例如,我有一个资源Business,根据用户是刚刚注册或在网站上停留了一段时间,可以从/account_setup(第一次用户)或/businesses/new(现有用户)创建业务。Rails多个创建/更新表单

我想同时使用这两种表单发布到相同的:create方法,我希望该方法足够聪明以找出哪个页面发布,以便它可以呈现该页面,如果它未通过验证。只是为了清晰:

GET /account_setup =>POST /businesses =>businesses#create => {失败} =>render 'account_setup'

GET /businesses_new =>POST /businesses =>businesses#create => {失败} =>render 'new'

由于两个正在寻找要创建一个业务,使用两个独立的控制器方法是毫无意义的,我假设有一个Rails-y方法来解决这个问题。检测我的两个表单中的哪一个做了这个职位的好方法是什么?

回答

0

在企业中使用request.original_fullpath#创建或嵌入特定于使用hidden_​​field显示表单的页面(控制器)的值。

0

您可以将隐藏的字段放在将存储表单类型的表单中。请记住,如果它是一个新用户,那么在创建业务之前,假设模型已关联,您将必须创建用户。