0

我在 .haml 文件中有以下代码:

.row-fluid.page-header
  %h2 My Programs
  - if @program.students(:confirmed).first 
    - if !@program.students(:confirmed).first.fees_info['has_info']
      .alert.alert-danger
        We do not have your information on file!

如果我们没有为注册课程的学生设置“has_info”标志,则此代码将尝试打印警报消息。

我的问题是,编写上述两个 if 语句的更好方法是什么。

我尝试/想要在 if 语句中分配一个变量,但无法使其工作:例如,我尝试过:

- if first_record = @program.students(:confirmed).first
  - if first_record.fees_info['has_info']

但这没有用。如何在这里声明一个可以在这些 if 语句中重用的变量?

4

1 回答 1

1

我会做这样的事情...

将此代码放入控制器中:

first_record = @program.students(:confirmed).first
@has_first_record_info = first_record && first_record.fees_info['has_info']

放入@first_record_alert视图以替换if语句:

- unless @has_first_record_info 
  .alert.alert-danger
    We do not have your information on file!

你想显示学生是否有记录和信息,所以先测试一下。然后,在视图中,如果他们的信息不存在,你想显示一个警报,所以使用unlesswhich 相当于if !@has_first_record_info.

于 2013-10-10T22:35:56.813 回答