好的,这应该已经在这里的某个地方,但我找不到它。
我正在使用 simple_form 构建一个表单,并且我正在使用一个虚拟无线电选择输入,其值基于我的“价格”模型中的一种方法(名为“简单?”)。这些方法查看是否使用了某些属性,如果使用则返回 false。这样,如果不使用它们,我可以隐藏表单中的高级输入。我想使用 simple_form 以便将该方法连接到正确的对象,因为可以以相同的形式制作(和创建)更多价格。我使用单选按钮(和 javascript),因此用户仍然可以取消隐藏高级字段。
问题是当我提交表单时,表单包括 :simple? 方法被提交,它返回错误,因为它只是一个方法。
问题是:我如何确保':简单?的值不是通过表单提交的,而是初始化为正确的值?还是有更聪明的方法来做到这一点?
表单.haml
= f.input :simple?, as: :radio, label: "Simple price?"
价格.rb
def simple?
true unless advanced?
end
def advanced?
specific_days? || period_id? || description? || begin_time? || end_time?
end
感谢您的任何反馈!