2つのユーザーインターフェイスを持つアプリケーションがあります。
1つ目は通常のユーザー向けで、2つ目はiPhoneユーザー向けです。
コントローラ内でコードをリファクタリングして、respond_toの代わりにrespond_with宣言を使用するまで、すべてが正常に機能していました。
アプリケーションはまだhtmlインターフェイス(:format =>:html)で動作していますが、iphoneインターフェイス(:format =>:iphone)では動作していません。
iPhoneで、次のアクション(:index、:new、:edit、:show)を実行すると、機能します。
しかし、(:create、:update、:destroy)を実行すると、テンプレートが見つからないというエラーが表示されます(たとえば、create.iphone.haml)。
私のコントローラーには
respond_to :html, :iphone
そして、例えば、編集と更新のアクション
def edit
@refund = Refund.find(params[:id])
respond_with(@refund)
end
def update
@refund = Refund.find(params[:id])
if @refund.update_attributes(params[:refund])
flash[:notice] = 'Refund was successfully updated.'
end
respond_with(@refund, :location => project_refunds_path(@project))
end
実際、:iphone形式は:htmlのように処理され、ドキュメントに指定されているto_formatメソッドを呼び出さないようにしたいと思います。