Haml: 앑체 μž‘μ—…

에 λ§Œλ“  2010λ…„ 06μ›” 04일  Β·  8μ½”λ©˜νŠΈ  Β·  좜처: haml/haml

Liquidλ₯Ό λ Œλ”λ§ν•˜λ €κ³  ν•  λ•Œλ§ˆλ‹€ 개체/λͺ¨λΈμ—μ„œ is_haml? 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€. Liquid와 HAML을 λ‚˜λž€νžˆ μ‹€ν–‰ν•  수 μžˆλ„λ‘ ν•˜λŠ” μΌμ’…μ˜ ν˜Έν™˜μ„± 섀정이 μžˆμŠ΅λ‹ˆκΉŒ?

감사 ν•΄μš”!

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

@dewski - μ‚¬μš©μž 지정 앑체 ν•„ν„° λ‚΄μ—μ„œ ActionView λ„μš°λ―Έλ₯Ό ν™œμš©ν•˜λ €κ³  ν•  λ•Œ 이에 λŒ€ν•œ λͺ‡ 가지 λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

μ˜ˆμ‹œ:

module LiquidFilters

  include ActionView::Helpers::TagHelper
  include ActionView::Helpers::UrlHelper

  def mailto(address, name = nil)
    mail_to(address, name, :encode => "javascript")
  end

end

Liquid::Template.register_filter(LiquidFilters)

그런 λ‹€μŒ λ‹€μŒ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€ ...

Liquid error: undefined method `is_haml?' for #

κ°„λ‹¨ν•œ μˆ˜μ •μ€ λͺ¨λ“ˆμ— Haml::Helpers도 ν¬ν•¨ν•˜λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€...

include Haml::Helpers

이것이 κ·€ν•˜μ˜ 상황에 μ „ν˜€ μ μš©λ˜λŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μΉœμ• ν•˜λŠ”,
λ°μ΄λΉ„λ“œ λ³Όλ“œμœˆ

λͺ¨λ“  8 λŒ“κΈ€

Haml은 ν˜„μž¬ ν…œν”Œλ¦Ώ μ»¨ν…μŠ€νŠΈκ°€ Haml인지 μ—¬λΆ€λ₯Ό ν™•μΈν•˜κΈ° μœ„ν•΄ Object#is_haml? λ©”μ„œλ“œλ₯Ό μ •μ˜ν•©λ‹ˆλ‹€. Liquid의 μ»¨ν…μŠ€νŠΈ 객체가 이것을 μ–΄λ”˜κ°€μ— μ •μ˜ ν•΄μ œν•˜κ³  μžˆμ„ κ°€λŠ₯성이 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€... 문제λ₯Ό λ³΄μ—¬μ£ΌλŠ” μ΅œμ†Œν•œμ˜ Rails μ•±μ˜ tarball을 μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

@dewski - μ‚¬μš©μž 지정 앑체 ν•„ν„° λ‚΄μ—μ„œ ActionView λ„μš°λ―Έλ₯Ό ν™œμš©ν•˜λ €κ³  ν•  λ•Œ 이에 λŒ€ν•œ λͺ‡ 가지 λ¬Έμ œκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.

μ˜ˆμ‹œ:

module LiquidFilters

  include ActionView::Helpers::TagHelper
  include ActionView::Helpers::UrlHelper

  def mailto(address, name = nil)
    mail_to(address, name, :encode => "javascript")
  end

end

Liquid::Template.register_filter(LiquidFilters)

그런 λ‹€μŒ λ‹€μŒ 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€ ...

Liquid error: undefined method `is_haml?' for #

κ°„λ‹¨ν•œ μˆ˜μ •μ€ λͺ¨λ“ˆμ— Haml::Helpers도 ν¬ν•¨ν•˜λŠ” κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€...

include Haml::Helpers

이것이 κ·€ν•˜μ˜ 상황에 μ „ν˜€ μ μš©λ˜λŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μΉœμ• ν•˜λŠ”,
λ°μ΄λΉ„λ“œ λ³Όλ“œμœˆ

이것이 λ‚΄κ°€ ν•„μš”ν•œ 것을 μ •ν™•νžˆ ν•  것이라고 μƒκ°ν•©λ‹ˆλ‹€. λ‚˜λŠ” 이것을 ν…ŒμŠ€νŠΈν•˜κ³  λ‹Ήμ‹ μ—κ²Œ λ‹€μ‹œ 연락할 κ²ƒμž…λ‹ˆλ‹€. 감사 ν•΄μš”!

David 덕뢄에 λ¬Έμ œκ°€ ν•΄κ²°λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” Nathan이 이것을 μ²˜λ¦¬ν•˜κΈ°λ₯Ό μ›ν•˜λŠ” 방법을 보기 μœ„ν•΄ 이것을 μ—΄μ–΄ λ‘‘λ‹ˆλ‹€. Haml은 Liquidκ°€ μ •μ˜λ˜μ–΄ μžˆλŠ”μ§€ 확인해야 ν•©λ‹ˆκΉŒ? κ·Έλ ‡λ‹€λ©΄ 포함해야 ν•©λ‹ˆκΉŒ?

Liquid에 λŒ€ν•œ νŠΉμ • μ²˜λ¦¬λŠ” μ—¬κΈ°μ—μ„œ μ˜¬λ°”λ₯Έ 방법이 μ•„λ‹™λ‹ˆλ‹€. μš°λ¦¬λŠ” μ—¬μ „νžˆ 근본적인 문제λ₯Ό νŒŒμ•…ν•˜κ³  μˆ˜μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€. κ°€λŠ₯ν•˜λ‹€λ©΄ μ—¬μ „νžˆ Rails μ•± μž¬ν˜„μ„ μ›ν•©λ‹ˆλ‹€.

λ‹€μŒμ€ 문제λ₯Ό 생성해야 ν•˜λŠ” λ² μ–΄λ³Έ μ•±μž…λ‹ˆλ‹€...

git clone git://github.com/baldwindavid/liquidhaml.git
cd liquidhaml
rake db:setup
script/server

μœ μΌν•œ κ²Œμ‹œλ¬Όμ˜ "ν‘œμ‹œ" λ³΄κΈ°μ—λŠ” 였λ₯˜κ°€ ν‘œμ‹œλ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. 그럼 ν•œλ²ˆ λ³΄μ„Έμš”...

config/initializers/liquid.rb

include Haml::Helpers 주석 처리λ₯Ό μ œκ±°ν•˜λ©΄ ν•„ν„°κ°€ μ˜ˆμƒλŒ€λ‘œ μž‘λ™ν•©λ‹ˆλ‹€.

이 μ˜ˆμ œλŠ” Rails 2.3.5와 λ‹€μŒ gem을 μ‚¬μš©ν•©λ‹ˆλ‹€...

config.gem "haml", :version => "3.0.4"
config.gem "liquid", :version => "2.0.0"

μΆ”κ°€λ‘œ ν•„μš”ν•œ 경우 μ•Œλ €μ£Όμ‹­μ‹œμ˜€. 감사 ν•΄μš”.

μΉœμ• ν•˜λŠ”,
λ°μ΄λΉ„λ“œ λ³Όλ“œμœˆ

이 문제λ₯Ό 였래된 κ²ƒμœΌλ‘œ μ’…λ£Œν•©λ‹ˆλ‹€. μ—¬μ „νžˆ 영ν–₯을 λ°›λŠ” μ‚¬λžŒμ΄ 있으면 μ•Œλ €μ£Όμ‹œλ©΄ λ‹€μ‹œ μ—΄κ² μŠ΅λ‹ˆλ‹€.

@baldwindavid κ°μ‚¬ν•©λ‹ˆλ‹€. include Haml::Helpersλ₯Ό μΆ”κ°€ν•˜λ©΄ λ¬Έμ œκ°€ ν•΄κ²°λ©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰