Ruby on RailsのActiveResourceの使い方解説
2022-02-03 10:10:56
HTTPレスポンスが存在しない形式(XMLやJSON)の場合、自分が使いやすい形式を作り、それをカテゴリで使用するためには、いくつかの追加フォーマットパースが必要です。通常のフォーマットは、extension, mime_typeのように実装する必要があります。
エンコード、デコードを行う。
module ActiveResource
module Formats
module Extend
module CSVFormat
extend self
def extension
'csv'
end
def mime_type
'text/csv'
end
def encode(hash, options = nil)
# Encode the data in the new format and return it
end
def decode(csv)
# Decode the data in the new format and return it
end
end
end
end
end
class User < ActiveResource::Base
self.format = ActiveResource::Formats::Extend::CSVFormat
...
end
HTTPリクエストを拡張なしで送信すべき場合、ActiveResource::Baseのelement_pathおよびcollection_pathメソッドをオーバーライドし、拡張を削除します。
class User < ActiveResource::Base
...
def self.collection_path(prefix_options = {}, query_options = nil)
prefix_options, query_options = split_options(prefix_options) if query_options.nil?
"#{prefix(prefix_options)}#{collection_name}#{query_string(query_options)}"
end
def self.element_path(id, prefix_options = {}, query_options = nil)
prefix_options, query_options = split_options(prefix_options) if query_options.nil?
"#{prefix(prefix_options)}#{collection_name}/#{URI.parser.escape id.to_s}#{query_string(query_options)}"
end
end
これらのメソッドは、URLを変更する必要がある場合にもオーバーライドすることができます。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
RVMを使ってRuby/Railsのバージョン切り替えを制御する
-
基本的なユーザー登録とログイン機能を実装するためのRuby on Railsチュートリアル
-
Rubyオブジェクト指向プログラミングにおけるクラスメソッドとクラスエクステンション
-
Rubyを使ったラムダ計算の詳しいシミュレーション方法
-
Ruby Hash ハッシュ型 基本操作のメソッド一覧 まとめ
-
Rubyのシングルトンメソッドとシングルトンクラス
-
Rubyオブジェクト指向の知識まとめ
-
デザインパターンにおけるDecoratorパターンを用いたRubyの例
-
Rubyのデザインパターン。プログラミングにおけるシングルトンパターンの活用
-
Rubyのクラスとモジュールの書き方のスタイルガイド