我是 Rails 新手,我正在尝试找出一种更好的方法:我使用从 YAML 文件读取的 Rake 任务将一些种子数据加载到我的数据库中。
模板.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
在我看来,我有一个下拉菜单,用户可以在其中选择要加载的模板,并且根据他选择的模板,我需要显示文本框以获取运行模板所需的字段。
模板.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]
.
.
.
在我的咖啡脚本中,我做了一堆 if/else 来隐藏和显示这些文本框,具体取决于用户选择的内容。
模板.咖啡:
toggleRequiredFields: ->
Template = $('#template_name').val()
if Template in ['Template3','Template2']
$('#user_id').show();
.
.
else
$('#user_id').hide();
.
.
随着时间的推移,模板的数量越来越多,if/else 逻辑变得混乱。当用户选择模板时,是否有更好的方法来执行此隐藏/显示切换?