我正在使用 draper 来清理一些视图逻辑。我有一些这样的代码:
装饰师:
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">
我不完全确定这里发生了什么。任何人都可以提供一些帮助吗?在我使用 draper 并在模板中有逻辑之前,一切都运行良好。我也不知道很多红宝石,所以我可能会遗漏一些明显的东西,对不起!