YML ファイルから構築されたアプリケーションに json オブジェクトを返す状況があります。yml ファイルを解析して json として返すため、常に次のようにする必要があります。
format.json { render json: YAML.load(render_to_string :file => File.join(Rails.root,'app','views','home','icons.yml.erb'), :layout => false ) }
(ただし) json になるカスタム形式を作成することで、この操作を短くしたいので、新しい MIME タイプを作成したくありません。
私の考えは書くことです:
format.myformat
これにより、views/mycontroller ディレクトリ内のmyaction.myformat.erbが自動的に検索され、yaml ファイルが自動的に解析され、json オブジェクトとして返されます。
これは可能ですか?はいの場合、どうすれば最終的にこれを行うことができますか?
編集 1: config/mime_types.rb で重要な提案を見つけました:
Mime::Type.register_alias "text/html", :iphone
したがって、MIME タイプのエイリアスを作成できますが、最大の問題は、format.html のように、特定の形式のデフォルトのレンダリング アクションを定義する方法です。
私が書くなら
format.html
current_action.html.erb は自動的にレンダリングされますが、カスタム フォーマットをレンダリングする正しい方法を選択するにはどうすればよいですか?
編集2:
私はこのコードを作成することができました(コントローラー内で、私が構築したいくつかのヘルパーメソッドを介して):
def icons
respond_to do |format|
format.extjson { render_to_extjson }
end
end
次のように書くと、レールにそれを理解させることができます。
def icons
respond_to do |format|
format.extjson
end
end
それはしなければなりません:
format.extjson { render_to_extjson }
デフォルトで?