« カボチャの種を食べた | トップページ | 暴想がアダルトサイトだった件について »

2008.11.11

Railsにjpmobileを使ってモバイル環境を構築するときのメモやノウハウのまとめ


四苦八苦したので、この記事にまとめを書いていこうかと。案外まとめページがない気がしたので。


●Application.rbへの修正
以下の2行を追記する。
---
class ApplicationController < ActionController::Base
...
transit_sid :mobile
mobile_filter :hankaku=>true
...
end
---

transit_sid :mobileは、session_idをURLに埋め込んだりURLから読み込んだりするのに良き見計らってくれる機能
mobile_filter :hankaku=>trueは、カタカナを勝手に半角にしてくれる機能


●RSpec対応
jpmobileはRSpecでテストを実行しようとする。RailsをRSpecを使って構築しているのならば問題ないけど、標準のテストフレームワークを使っている場合はバッティングする。
具体的にはrake statsで情報が取得できなくなったりする。
./vendor/plugins/jpmobile/vendor/plugins/rspec_on_rails/tasks/rspec.rake

task :stats => "spec:statsetup"
の行をコメントアウトする。

RSpecと標準テストのもっと良い共存方法があるなら知りたいんだけど、あるのかな?


●named route問題
以下のサイトを参考
引数なしの named route は ActionController#default_url_options を見てくれない - 夜の Discovery
jpmobile trans_sidが効かないとき - くりまるwebつくる
jijixi's diary - 体調とか , Rails 2.0でデバッグをする新しいやり方 (Hello, world! - s21g) , 2.0.2 で mobile on rails の session id を URI ..
trans_sidが名前付きルートで使えないケーーーーーン! - cracchoの日記
ビューで引数なしでnamed routeを使ったときdefault_url_optionsが無視されるのに対処 - ζ*’ワ’)ζ<うっうー遅レス。


●link_to_remote問題(REST問題)
Rails2.0でRESTな実装をしていると、携帯対応をするときに困る。
具体的には、テキストリンクでputとかdeleteとかかしていると困る。
例えば、削除するとかいうリンクをlink_toで実装していると

<%= link_to _('Destroy'), users_path(user), :confirm => _('Are you sure?'), :method => :delete %>

とかと書いたりするけど、これはJavaScript使いまくりなHTMLを出力するので携帯では使えない。
なので、素直にform_forに書き換える。

<% form_for(@user, :_method=>:delete) do |f| %>
<%= f.submit "delete" %>
<% end %>

●mobile link discovery対応
PCでも展開している携帯電話のサイトをクローラーに正しく認識してもらうためには、mobile link discoveryを利用する必要がある。
Six Apart - Docs: Mobile Link Discovery 仕様

Railsでこれを埋め込もうとした際に、auto_discovery_link_tagを使うと良いんじゃないかと思ったら、このヘルパーはatomとrssが前提で、MLDには流用できなかった。
jpmobileにそんなヘルパがあると良いなと思ったけれども、無かったので自前で実装。
./app/helplers/application.rb
---------------
def mobile_link_discovery_tag(url_options = {}, tag_options = {})
tag(
"link",
"rel" => "alternate",
"media" => "handheld",
"href" => url_options.is_a?(Hash) ? url_for(url_options.merge(:only_path => false)) : url_options
)
end
---------------

↓1日1ポチッとをお願いします!励みになります!
ポチっとよろしく!

|

« カボチャの種を食べた | トップページ | 暴想がアダルトサイトだった件について »

ruby」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/22269/43080218

この記事へのトラックバック一覧です: Railsにjpmobileを使ってモバイル環境を構築するときのメモやノウハウのまとめ:

« カボチャの種を食べた | トップページ | 暴想がアダルトサイトだった件について »