我尝试对新操作和编辑操作使用相同的 HAML 部分,并在表单中设置默认值(如果它是新操作)。但是使用类似的东西:
= f.text_field :card_name, value: "Chase"
在呈现编辑操作时覆盖记录的存储值。解决这个问题的最佳方法是什么,既不需要两个单独的 View (一个用于新建,一个用于编辑),也不需要一个丑陋的 if/else block ?
另一个要求是该值实际上显示在表单中,因此不能简单地在 Controller 中设置它。
最佳答案
怎么样
= f.text_field :card_name, value: (f.object.new_record? ? 'Chase' : f.object.card_name)
为了让条件消失,我尝试通过 ActiveRecord after_initialize
来完成此操作。
关于forms - 轨道 4 : Set default field in form partial only if new form,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22888830/