2011-09-21 4 views
1

나는 FlagShihTzu 보석에 기능을 추가하기위한 모듈을 작성하고 있습니다.모듈 어레이 출력

기본적으로 플래그를 거쳐 오브젝트에 할당 된 키를 출력합니다. 그것은 작동하지만, 또한 출력에서 ​​일을보기 위해 블록을 사용할 수 있기를 원합니다.

문제는 모듈의 배열과 뷰의 블록 출력을 모두 출력한다는 것입니다.

= book_offer.my_flags.each do |flag| 
    = flag.titleize 

내가 얻을 것은 :

Regular Complimentary regular complimentary 

답변

0

당신은 그로 전환해야합니다 :

- book_offer.my_flags.each do |flag| 
    = flag.titleize 

=은을 포함하는 의미 뷰에서

module AwesomeFlags 

    def my_flags(column = nil) 
    a = self.flag_mapping 
    if column.nil? 
     c = a.values.map {|var| var.keys}.flatten 
    else 
     b = a[column] 
     c = Array.[](b.keys).flatten 
    end 
    c.map {|var| self.send(var) ? "#{var.to_s} " : nil}.compact! 
    end 

end 

메소드 호출의 출력, 여기서 -은 단순히 실행하는 것을 의미합니다. each 루프가 목록의 항목을 반환하고 있습니다.

+0

완벽한, 감사합니다. 때로는 깊은 물질에 빠져서 단순한 물질이 나를 벗어나는 경우가 있습니다. –