RailsにJbuilderを導入したら、レスポンスが帰ってこなくって困ったでござるの巻
まず最初にJbuilderってJavaのなんかだと思った。富士通とかそういうところが出してるIDEとかなんかそういうの。10万くらいしそうな。
で、そうじゃなくてレスポンスをjsonで組み立てるときに使うやつ。
https://github.com/rails/jbuilder
WebAPIサーバなんか創るんだったら、ぜひ使ってみた方がいい。respond_withとか辛すぎる。
before
respond_with article, include: [ :hoge, {comments: {include: {author:{only: :name, methods: 'avatar_thumb_url' }}}} , {likes: {only: :id, include: {user:{only: :id, methods: 'avatar_thumb_url' }}}} , {article_images: {except: ArticleImage::FILE_STATUS_COLUMN, methods: ArticleImage::IMAGE_URL_METHODS}}, {user: {except: User::FILE_STATUS_COLUMN, methods: Author::IMAGE_URL_METHODS}} ], except: Article::EXCLUDE_COLUMN
こんな感じのが・・・
after
json.array! @articles do |article| json.extract! article, :id, :title, :rating, :article_url, :thumb_url json.author article.author, :name, :title, :avatar_thumb_url json.hoge article.hoge, :name, fuga, piyo json.article_images article.article_images, :article_url, :thumb_url end
こんなにわかりやすく・・・!
で、最初ブラウザでJsonでるでるーって思いながらやってたんだけど、詳細を詰めにかかったときにプチハマりした。もともとRspecでテストが書いてあったのでポーティングも楽勝と思ったらレスポンスが空でテストが全ゴケた。
ちょっと調べたらわかった。
http://stackoverflow.com/questions/9965945/why-is-jbuilder-not-returning-a-response-body-in-json-when-testing-rspec
JbuilderはさむことRspecではrender_viewというプロセスが必要だったらしい。
こうやる。
RSpec.configure do |config| ~snip~ config.render_views = true ~snip~
これでテスト全通り気持よすぎワロリーヌ。
劇場版 魔法少女まどか☆マギカ [前編] 始まりの物語/[後編] 永遠の物語【完全生産限定版】 [Blu-ray]
- 出版社/メーカー: アニプレックス
- 発売日: 2013/07/24
- メディア: Blu-ray
- この商品を含むブログ (73件) を見る