为什么我的if语句不起作用?

时间:2012-01-04 17:41:42

标签: ruby-on-rails-3 if-statement haml

很抱歉,如果这是基础或我在这里遗漏了一些明显的东西。我是铁杆新手。

我正在使用HAML,但我不是那个问题,一切都在解析,只是我的陈述被忽略了。

- unless @posts.nil?
  - @posts[0..2].each do |post|
    .tumblr_post{ :class => post['type']}
      - type = post['type']
      - if type == 'photo'
        %h3 IMAGE
        %img{:src => post['photo_url1']}
        = raw post['vid']
        .tumblr_text
          .post_date= post['date']
          %h3= post['title']
          = raw post['photo_caption']
      - if post['type'] == 'regular'
        .tumblr_text
          .post_date= post['date']
          %h3= post['title']
          %h4 OMGNOT A PIC
          = raw post['photo_caption']

我尝试了几种方法,但我不明白为什么它不起作用。打印post ['type']作为div类的一部分的代码工作正常。但它不会评估if语句。

我的理想是能够根据帖子类型设置不同的div,以避免在我的最终代码中出现空格或div。

感谢您提供指导我正确方向的任何提示或帮助!

1 个答案:

答案 0 :(得分:0)

正如@MeTheWalrus指出的那样,问题是我的帖子['type]不是一个字符串,因此没有评估为真。

我检查了这个(post ['type'] =='photo')。inspect(并得到'false'),所以只需将其转换为字符串:

post['type].to_s 

对此进行排序并使其评估为真!