Rails在编辑时重用表单视图,但只读取一些字段

gaq*_*qzi 5 views ruby-on-rails readonly

我有一个模型,用户不允许在初始创建后更新大多数字段.

我已经看到了:readonly我可以在所有字段助手上添加的HTML属性,但在所有字段上执行条件感觉...... icky.

我现在没有使用任何特别的东西来创建我的表单,只是简单的HAML.有人知道更好的方法吗?

这就是我到目前为止所做的一切:

def set_readonly?(object, html_attr)
  html_attr.merge(object.new_record? ? {} : {:readonly => 'readonly'})
end
Run Code Online (Sandbox Code Playgroud)

用作:

f.text_field :supplier_id, set_readonly?(@damaged_goods, {:size => 5})
Run Code Online (Sandbox Code Playgroud)

让我流口水的解决方案是在状态机上将属性设置为只读的方式,然后状态机将传播到视图.:)

Pet*_*ete 5

这是禁用<INPUT>字段而不在您的newedit视图中复制表单助手的一种方法:

f.text_field :supplier_id, readonly: f.object.persisted?
Run Code Online (Sandbox Code Playgroud)