2012-10-24 2 views
2

ruby ​​1.9.3p125와 rails 3.2.8을 사용하고 있으며 rabl을 오늘 내 gemfile에 추가 했으므로 최신 상태 여야합니다.레일에 콧수염과 루비와 함께 rabl을 사용하는 방법

json을 요청자에게 직접 보내려는 간단한 상황에서 RABL을 사용했습니다. 이제 나는 jbl을 생성하기 위해 rabl을 사용하고, 그 다음 그것을 콧수염으로 표현하도록하는 상황이 있습니다.

이 전에 내가 이렇게 JSON, 생성 (모델에서 재정의) as_json을 사용하고있다 : 난 아직도 사용하고자하는 _scrollable.html.mustache에 적합한 템플릿, 거기에

<%= render 'scrollable', :mustache=>{photos: @page.photos.as_json} %> 

을 .

# _photo.json.rabl 
object @photo do 
    attributes :src, :name, :height 
    attributes :drawing 

    node do |p| 
    { :label => p.caption || p.name } 
    end 

    child :components do 
    attributes :name, :height 
    end 

end 

# _photos.json.rabl 
collection @photos do 
    extend 'photos/photo' 
end 

는 이러한 템플릿라는 어떻게합니까 :

나는 이렇게 사진을 RABL 템플릿을 작성했습니다? 와

<%= render 'scrollable', :mustache =>render(@page.photos, template: 'photos', formats: '[json]', handlers: ['rabl']) %> 

반환 내가 형식 원하는 사실을 잃은 것 같다 점에서 흥미 롭다

Missing partial ..../photos/photo with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee, :mustache, :rabl]} 

: JSON 나는 비슷한 일을하고 있어요

답변

4

를하지만, 전화 Rabl 렌더러를 직접 호출하고 json 문자열 대신 해시를 요청한 다음이를 콧수염 데이터로 사용하십시오.

render 'posts.mustache', :mustache=>Rabl::Renderer.new('posts.rabl', @posts, :view_path => 'app/views', :format => 'hash').render 

콧수염은 개체가 문자열이 아니길 기대하고 있다고 생각합니다.

+0

감사합니다. 나는 결국 그와 비슷한 것을했다고 생각한다. –

+0

@AnitaGraham,이 경우에는 마침내 당신이 뭘했는지 설명해야합니다. (문제는 하단에 있습니다.) 그래서 우리는 모두 그것으로부터 이익을 얻을 수 있습니다. – tokland

관련 문제