У меня есть модель, в которой пользователю не разрешено обновлять большинство полей после первоначального создания.
Я видел атрибут :readonly
HTML, который я могу прикрепить ко всем помощникам полей, но выполнение условий для всех полей кажется ... icky.
В настоящее время я не использую ничего особенного для создания своих форм, просто HAML. Кто-нибудь знает лучший способ сделать это?
Это то, о чем я думал до сих пор:
def set_readonly?(object, html_attr)
html_attr.merge(object.new_record? ? {} : {:readonly => 'readonly'})
end
Используется как:
f.text_field :supplier_id, set_readonly?(@damaged_goods, {:size => 5})
Решением, заставляющим меня пускать слюни, будет способ установить атрибут только для чтения на модели вместе с Конечным автоматом , который затем будет распространяться на представления. :)