Forms Rails 4:仅当新表单出现时才在表单部分中设置默认字段
我尝试对new和edit操作使用相同的HAML partial,如果是新操作,还可以在表单中设置默认值。但是,使用类似于:Forms Rails 4:仅当新表单出现时才在表单部分中设置默认字段,forms,ruby-on-rails-4,haml,Forms,Ruby On Rails 4,Haml,我尝试对new和edit操作使用相同的HAML partial,如果是新操作,还可以在表单中设置默认值。但是,使用类似于: = f.text_field :card_name, value: "Chase" 在呈现编辑操作时重写记录的存储值。如果没有两个单独的视图(一个用于新建,一个用于编辑),或者没有丑陋的if/else块,解决此问题的最佳方法是什么 另一个要求是该值实际显示在表单中,因此在控制器中简单地设置它不是一个选项。如何 = f.text_field :card_name, valu
= f.text_field :card_name, value: "Chase"
在呈现编辑操作时重写记录的存储值。如果没有两个单独的视图(一个用于新建,一个用于编辑),或者没有丑陋的if/else块,解决此问题的最佳方法是什么
另一个要求是该值实际显示在表单中,因此在控制器中简单地设置它不是一个选项。如何
= f.text_field :card_name, value: (f.object.new_record? ? 'Chase' : f.object.card_name)
要使条件消失,我将尝试在初始化后通过ActiveRecord执行此操作,您还可以执行以下操作:
= f.text_field card_name, value: (f.object.card_name.blank? ? "Chase" : f.object.card_name)
使用这种方法,如果卡名称为空,则仅设置字段。例如,如果您在新操作中将card_name设置为“something”,并且由于其他字段而导致错误,则card_name仍将是“something”,而不是“Chase”。如果在编辑操作中已经设置了字段,则将显示对象的值。我认为,如果使用此语法,则在编辑视图中仍会有默认值,这将无法判断显示的值是来自记录还是作为默认值生成的。