从if语句中分配和重用该变量

时间:2013-10-10 22:26:19

标签: ruby-on-rails ruby haml

我在.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语句中重用的变量?

1 个答案:

答案 0 :(得分: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!

您想要显示学生是否有记录和信息,因此请先测试。然后,在视图中,您希望在其信息不存在时显示提醒,因此请使用等同于unless的{​​{1}}。