1
我是Rails的新手,我试图找出一个更好的方法:使用从YAML文件读取的Rake任务将一些种子数据加载到我的数据库中。如何避免多个if/else
Template.YAML:
- file_name: Template1
description: temp1
required_fields: address
- file_name: Template2
description: temp2
required_fields: user_id,user_name
- file_name: Template3
description: temp3
required_fields: user_id,address
在我看来,我有一个下拉,用户可以选择一个模板加载,并根据他选择的模板,我需要显示的文本框中获取必需的字段以运行模板。
Template.html.slim:
dt
label for="template_name" Select The Template To Run
dd
= select_tag :template_name,options_for_select(@template_seed_data_array.insert(0, "Please select the template")), :onchange => "Template.toggleRequiredFields(); return false"
#user_id style="display:none"
dt
label for="user_id" Enter User Id
dd
= text_field_tag :user_id, @template_library[:user_id]
#user_name style="display:none"
dt
label for="user_name" Enter user name
dd
= text_field_tag :user_name, @template_library[:user_name]
.
.
.
在我coffescript,我做了一堆的if/else隐藏和显示这些文本框这取决于用户选择。
Template.coffee:
随着时间的推移,模板的数量变得更高和的if/else逻辑变得混乱。当用户选择模板时,是否有更好的方式来做隐藏/显示切换?
谢谢你的方法真棒。我正在考虑使用data-attribute来存储与该文本字段相关联的文件名。你对这种方法的想法? –
听起来好像不会很好。如果你有很多模板,这些数据属性可能会变得很长或很多。在这种情况下,我认为让JS中的数据比HTML中的数据更有意义。 –
很酷。非常感谢。 –