지난 주에 두 번 나왔습니다. 실종 된 모범 사례 또는 가이드 라인이 있어야하는 것처럼 느껴 왔습니다. 우리는 API를 구축하고자하는 레일즈 애플리케이션을 보유하고 있습니다. 우리는 표준 일 수행하여 시작 :Rails API -보기를 API 응답으로 바꾸기
...
respond_to :json
def show
@post = Post.find(params[:id])
respond_with @post
end
...
그래서 우아하지만, 다시 현실 세계로 ... 주요 사이트에 우리의 전망은 복사/메시지를 표시하기위한 조건부 논리의 일부 금액이를 그 API의 소비자 에 대한 액세스를 원한다. 합리적인 요구 사항 인 것처럼 보입니다. 소모적 인 (iPhone) 응용 프로그램에서 사본을 하드 코딩하지 않으려는 경우가 드물기 때문에 발행주기가 짧아지기 때문에 메시지를 업데이트 할 수 있습니다. 다음은 몇 가지보기 코드의 작성된 예입니다.
<% if @post.profanity_detected? %>
This post is under review and it'll go live within <%= @post.review_period %> days. Blah blah additional copy...
<% else %>
Your post for <%= @post.title %> looks great...
<% end %>
이러한 유형의 요구 사항을 어떻게 처리합니까?
1) @ post.profanity_message_text에 적절한 메시지를 반환하는 모델에 메소드를 추가 할 수 있습니다. API 모델을 직렬화 할 때 메소드를 포함 할 수 있습니다. 그러나 어떤 경우에는 모델에 속한 것처럼 느껴지지 않는 훌륭한 양의 복사본이 있습니다.
2) 모든 메시징이 포함 된 json 응답을 빌드하는 show.json.erb 파일을 추가 할 수 있지만 코드 양이 많아지면서 지루한 느낌이들 것 같습니다.
누구나 패턴을 접하게되어 정말 행복합니까?
제안 해 주셔서 감사합니다.
그래,이 꽤 좋다. 모델에 메소드를 추가하거나 show.json.erb를 작성하는 방식으로 잘 작동합니다. 또한 모델에서 as_json을 재정 의하여 as_json (: methods => [: blah], : translation_keys => [ 'post.notice', 'post.terms_of_use']와 같은 i18n 키를 수락 할 수 있습니다. 감사! – njorden