ドレーパーを使用して、一部のビュー ロジックをクリーンアップしています。私はそのようないくつかのコードを持っています:
デコレーター:
class EventTypeDecorator < Draper::Decorator
delegate_all
def name_field
if object.name == 'Miscellaneous'
h.text_field object, :name, {id: "event_type_#{object.id}_name", disabled: true}
else
h.text_field object, :name, {id: "event_type_#{object.id}_name"}
end
end
end
形:
= form_for event_type, remote: true do |f|
...
= f.label :name, 'Event type name:'
...
出力:
<input disabled="disabled" id="event_type_1_name" name="#<EventType:0x007f9db6df9cf0>[name]" type="text">
期待される出力:
<input value="Miscellaneous" disabled="disabled" id="event_type_1_name" name="event_type[name]" type="text">
ここで何が起こっているのか完全にはわかりません。誰でも助けを提供できますか?ドレーパーを使用し、テンプレートにロジックを含める前は、すべてが正常に機能していました。また、ルビーについてもあまり知らないので、明らかな何かが欠けている可能性があります。申し訳ありません!