2013-11-01 15 views
1

比方说,我有两个宝石,stylinglogicSearch将两个宝石应用于轨道中的表单对象?

每个人都可以通过以下方式被应用到form_for

<%= styling_form_for @sample do |f| %>

<%= logicSearch_form_for @sample do |f| %>

然而,是什么如果我想将这两个表格应用到这个表格中?造型改变,的逻辑改变。有没有办法让我将两个宝石/方法应用于同一个表单对象?

编辑:回答问题:不,我不是自己编写这些宝石。两者都是第三方。

+1

你是在创作这些宝石(你有更多的选择,然后!),或者你在使用它们吗?这不会是一个超级干净的方式来做到这一点。你可以重写'ActionView :: Helpers :: FormHelper'的部分内容,并提供自己的form_for方法,从两个gem中挑选和选择方法。但这是一个有趣的问题。 – struthersneil

+0

如果你自己编写宝石,我不会创建专门针对样式/特殊逻辑的form_for变体。 – struthersneil

+0

你可以看看一个专门的'FormBuilder' - 这是'form_for'用来创建元素的东西 - 看看这里的文档http://api.rubyonrails.org/classes/ActionView/Helpers/FormBuilder.html – struthersneil

回答

2

如果不知道你正在谈论的实际宝石,很难回答,但我的猜测是,你必须找到宝石内的表单构建器,并且看看你是否可以创建自己的构建器来混合两者的功能。

然后:

<%= form_for @sample, builder: MyMixedBuilder do |f| %> 

看到FormBuilder's doc了解更多详细信息。