【问题标题】:Rails two forms for one modelRails 一种模型的两种形式
【发布时间】:2013-12-13 07:57:46
【问题描述】:

使用两种不同的表单来编辑一个模型的不同字段集的最佳方式是什么。

要求:

  • 我想要两个视图:每个视图都有一个表单来编辑不同的字段
  • 我想让一个模型连接到数据库。

我在想两种方法:

1 - 一个控制器具有两组方法,例如

定义编辑1 .. 结束

定义更新1 .. 结束

定义编辑2 .. 结束

定义更新2 .. 结束

手动添加对应的路由。

2 - 两个控制器和用于路由的“资源”,例如:

路线:

资源:mymodelset1

资源:mymodelset2

控制器:

class mymodelset1Controller

class mymodelset2Controller

【问题讨论】:

  • 您是否在控制器中尝试过不同的操作。我认为这可能会有所帮助

标签: ruby-on-rails forms


【解决方案1】:

你试过Reform Rails

在这种情况下确实很有效

【讨论】:

【解决方案2】:

您无需对控制器、模型或路由做任何奇怪的事情,它会“开箱即用”。 唯一需要注意的是在每种情况下解析相应的编辑视图。

您可以使用

指示将哪个模板呈现到您的编辑操作中
if your_condition
  render: 'edit1' and return
else
  render: 'edit2' and return
end

【讨论】:

  • 好主意。正如我所理解的那样,your_condition 应该依赖于来自 URL 的一些标志进行编辑:比如 edit_model_url(:flag=>'fields1')。
  • 是的,满足您的需求。更多信息在这里:guides.rubyonrails.org/layouts_and_rendering.html#using-render
  • 已编辑:添加and return以避免可能的双重渲染错误。
猜你喜欢
  • 1970-01-01
  • 2013-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-14
  • 1970-01-01
  • 2011-02-03
相关资源
最近更新 更多