svn ci -m …

Малко парче код, което ми се струва достатъчно интересно че да го постна.

development=# \d comments
                                     Table "public.comments"
   Column   |            Type             |   Modifiers
------------+-----------------------------+--------------------
....
 spam       | boolean                     | not null default false
 approved   | boolean                     | not null default false
...

Трябва ми име за CSS клас (pending, spam, published), като и текстов низ да покажа на потребителя (Очаква одобрение, Спам, Публикуван). Може би нещо от тоя род?

  1. module Admin::CommentsHelper
  2.   def status(comment)
  3.     if comment.approved?
  4.       return :published
  5.     else
  6.       if comment.spam?
  7.         return :spam
  8.       else
  9.         return :pending
  10.       end
  11.     end
  12.   end
  13.  
  14.   def status_name(comment)
  15.     if comment.approved?
  16.       #…
  17.     End
  18.   end
  19. end

Не, стана грозно. Я да пробваме по друг начин:

  1. module Admin::CommentsHelper
  2.   def status(comment)
  3.     {
  4.       [false, false] => :pending,
  5.       [false, true]  => :spam,
  6.       [truefalse] => :published,
  7.       [truetrue]  => :published
  8.     }[[comment.approved?, comment.spam?]]
  9.   end
  10.  
  11.   def status_name(comment)
  12.     {
  13.       :pending    => "Очаква одобрение",
  14.       :spam       => "Спам",
  15.       :published  => "Публикуван"
  16.     }[status(comment)]
  17.   end
  18. еnd

Секси! Май съм го споменавал?

One Comment

  1. Posted February 21, 2008 at 6:35 pm | Permalink

    Готино :)

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*