東銀座 じゃのめ 500円 でうどん・天丼を食べる


東銀座 にある 銀座 じゃのめ 銀座三丁目店 にて、 500円 で天丼を食べてきました。 ものによって 390円 だったり 500円 超えたりする お店です。

じゃのめ 500円 天丼

ごはんが少ないように見えるかもしれませんが、(うつわ)が深くてごはんもどっさり入っています。

続きを読む 東銀座 じゃのめ 500円 でうどん・天丼を食べる

Rails: Devise エラー undefined method `failure_app’ for nil:NilClass の対処法


API を作っていたとき、 次のようなエラーが出ました。 原因は devise gem でした。

NoMethodError (undefined method `failure_app’ for nil:NilClass)

環境

  • Ruby 2.2.3p173
  • Rails 4.2.4
  • devise 3.5.2

原因

unauthorized のユーザに対して sign_in を実行していました。

作成中の API では、 いちいちメールの確認をしなくてもログイン・利用はできるようにしておく方針だったため、 メール未登録のユーザでもログインする処理を記述していました。 そのため、 通常なら warden の上で unauthorized とみなされるユーザについてもログイン処理を行っていました。

対処法

config/initializer/devise.rb で次のように設定を行うと解決します。

ほかに、次の記述を devise で認証を行うモデルクラスに入れるという方法があります。 たとえば User クラスなど。

意味を考えると 後者のほうが望ましいと思います。

confirmation_period_valid?

メソッド confirmation_period_valid? は devise のモジュール Devise::Models::Confirmable で定義されています。


銀座で毎日のランチを平均550円未満に抑える方法


銀座周辺で毎日のランチを平均550円未満に抑える方法を書きます。 ワンコインランチを探すというのも手なのですが、 今回は ワンコインではないランチを考えます。

PREMIUM PASS を買うと、毎日のランチを平均550円以下に抑えることができます。

仕組み

PREMIUM PASS vol. 3 があれば、 500円 のランチが 29回 食べられる計算になります。 (13:00 以降 でないと使えないものを除くと、 21回 食べられる計算になります。)

1か月のうち、 ランチを外で食べるのは (私の場合)だいたい 20回 です。 要するに 20日全日、 500円でランチを食べられることがわかります。

PREMIUM PASS vol. 3 の価格が 980円 ですから、 ( ( 980 + 500 times 20 ) div 20 = 549 ) 円 で毎日のランチが食べられる計算になります。

仮に PREMIUM PASS に載っているお店に行かなくても、 500円 のランチを食べるんだったら 平均して ランチのコストは同じになります。

470円 で食べられる蕎麦(そば)もありますが、 そういったものばかりではいやになる、 だけど高いランチはいやだという方におすすめの一冊です。

PREMIUM PASS 銀座グルメパスポート vol. 3
PREMIUM PASS 銀座グルメパスポート vol. 3

今は東銀座で働いていますが、 東銀座からでも徒歩で行ける範囲のお店が多く載っています。 銀座、銀座1丁目、新橋、東銀座あたりで働いている方におすすめです。

他のエリア

新宿など、他のエリアでも同じような冊子が売られています。 東京だけでなく他の都道府県のもありますので、「ランチパスポート」を Amazon で検索 してみてください。


Rails: Cells 3 から Cells 4 へのアップグレード


Rails のアプリケーションで Cells gem を 3.11.3 から 4.0.2 にアップグレードしました。 一緒に Rails も 4.1.9 から 4.2.4 にアップグレードしました。 ここでは Cells についてやったことを書きます。

基本的なやり方は From Cells 3 to Cells 4 Upgrading Guide に説明がありますので ご参照ください。 バージョン 4 に変更するのは結構大変です。

環境

  • Ruby 2.2.3
  • テンプレートエンジン: Slim

経緯

ある人が外注に出していたプログラムを なぜか私がデザイン、マークアップ含めて更新することになり、 Rails と Gem のバージョンを更新しました。

その Rails のアプリケーションにテストコードは一切ありませんでした。

リリース前のプログラムに対して変更を行いました。

やったこと

  1. ApplicationCell 作成
  2. helper を include に変更
  3. render_cell を cell に変更
  4. ファイル名変更
  5. app/views 内のテンプレート呼び出し部分を変更

ApplicationCell 作成

cell のテンプレートの中で device 関連のメソッドを使っていたり、 フォームタグ関連のメソッドを使っていると途端に動かなくなります。 そこで、 ApplicationCell を作成して 全ての Cell がそれを継承するように変更しました。

アプリケーションを見ながら 次のような ApplicationCell を作りました。 include で取り込んでいるモジュールは、 エラーが出る度に順次取り込んでいったものです。

self.helper_methoddevise が呼び出しているため、 呼べるようにしておくために作っています。 Cells では 既に意味のないメソッドになっているので、 何も処理は行いません。 この記述については 一部 Rails: Cells 3 から Cells 4 への アップグレード時に遭遇したエラー にも関連情報を書きました。

helper を include に変更

各 Cell クラス に helper ApplicationHelper というのが記述されていました。

Webrick を実行してページを開くと undefined method と表示されました。 そこで、 helperinclude に変更しました。

sedコマンドを使って、 複数ファイルを一度に変更しました。

render_cell を cell に変更

Cells 4 から メソッドが変わりました。 ビューの中で使用されている render_cellcell に書き換えました。

いままで書いていた人がコードを綺麗に保っていたので、 sedコマンドを使って簡単に変更できました。 書き方が何通りもある場合は、簡単にはいきません。

変更前コード

変更後コード

ファイル名変更

cell のテンプレートが method_name.html.slim となっていましたが、 cell(:cell_name).(:method_name) で呼び出した場合、 method_name.slim のテンプレートを探してエラーとなりました。

cells/lib/cell/view_model.rb 内の find_template メソッド でテンプレートの名前を組み立てていますが、 そこでは 文字列 'html' を結合していません。

そこで、 テンプレートファイルの名前から html を抜きました。

app/views 内のテンプレート呼び出し部分を変更

こちらも間に合わせの対応でした。

過去のコードでは過去のコード cell のテンプレートから app/views/shared/something.html.slim を呼び出していました。

変更前コード

この呼び出し方だと、 Cells 4 ではうまくいきません。

cells/lib/cell/templates.rbcells/lib/cell/view_model.rb を見ながら次のようにコードを変更しました。

変更後コード

prefixesview を作るだけではなくて、 view の値も変える必要があります。

app/views内のテンプレートを呼び出す際のメソッドを ApplicationCell に作ったほうがよかったかもしれません。

Cell の中に self.view_paths += ['app/views'] を加えると、 app/views/cell_name の中でテンプレートを探すようになります。 つまり、次のように変更しても動くようになります。

コード変更案


東銀座 がんばれば 500円 のワンコインランチ 太常


東銀座にある 太常(だいつね)うどん 本店 に行ってきました。 がんばれば 500円 のワンコインランチにできます。 標準的な価格としては 600-700 円 くらいだと思います。

太常うどん

太常うどん

江戸時代から続く八百屋が から 始めたうどん屋です。

化学調味料を一切使わずに出汁(だし)をとっていて、 安心してつゆまで飲み干せるうどんになっています。 また 具材には 野菜が多く使われており、 その野菜も築地市場から直接仕入れた 国産の野菜を使っています。 野菜なので 季節に合わせて具材の種類も変わります。

麺に使用している塩も無添加の国産物を使っています。 また 麺に使っている小麦は 香川から仕入れているそうです。

お店の前には、 仕入れた旬の野菜が売られています。

下の写真は かけうどん と ごぼう を注文して 500円 にしたものです。

かけうどん と ごぼう を 注文しました。

システム

はなまるうどんや丸亀製麺のように、 まずうどんを注文して、 具材をとって乗せていくシステムです。

かけうどんが 450円 ですので、 かけうどんと 50円 の具材を組み合わせれば ワンコインランチ のできあがりです。 500円 にする組み合わせは かなり限定されますし、 ボリュームの点でもいまいちなので、 600-700円 を想定しておくのがいいと思います。

無添加へのこだわりと、 新鮮な野菜がいただけるので 500円 を超えても仕方ないかなと思います。

おすすめポイント

野菜が本当に新鮮でおいしいです。

店内全面禁煙です。

夜の太常うどん

夜は一品料理や鍋もいただけます。 もちろんお酒も飲めます。

壁にはピアノがあります。 ジャズの演奏が行われることもあるそうです。 案内は店内または 太常うどんウェブサイト をご覧ください。

場所

最寄り駅は東銀座と築地市場です。 銀座、築地、新橋、汐留からでも歩いていけます。 新富町、 銀座1丁目 からだと遠く感じるかもしれません。

耳より情報

PREMIUM PASS Vol. 3を持っていくと、 本来700円のなめこうどんが500円で食べられます。 PREMIUM PASS Vol. 3 には有効期限がありますのでご注意ください。 また、 Vol. 4 などの後のバージョンに載っているかどうかはわかりません。

PREMIUM PASS 銀座グルメパスポート
PREMIUM PASS 銀座グルメパスポート

A Life Summary of an Gypsy