なんとなく日記

Everyday studying...

layoutとtemplateとpartsを使い分けるいい方法を知りたい

Header+2pain+Footerなベーステンプレートがあって,それは全画面で使いたい.ただ各部では共通なpartsを利用して,main部分には各controllerに応じた表示をさせたい.のような場合,ひとまずはcontents_forを使う方法でやってますが,これよりいい方法あるんでしょうか. <% content_for(:header) do -%> header <% end -%> <% content_for(:menu) do -%> menu <% end -%> <% content_for(:footer) do -%> footer <% end -%> main contents <html> <body> <div id="header"><%= yield :header -%></div> <div id="container"> <div id="menu"><%= yield :menu -%></div> <div id="main"><%= yield :layout -%></div> </div> <div id="footer"><%= yield :footer -%></div> </body> </html> そもそも構成がまずいのかもしれないのだが,どうなんだろうか.

routes.rbで/アクセスを割り当てる

単純に, map.connect '', :controller => 'top', :action => 'index' などとすればいいのだが,public/index.htmlが存在するとそちらが優先されるらしい.ので削除を忘れずに.

どの分野も抱える病

ニッポンIT業界絶望論 どの業界でもやはり求められているのは,体力があり従順な一兵卒.組織やシステムに意見を言う,憂いを抱いた力ある改革者ではない.だからこそ改革者は新たな場を求めて旅立ってしまう.まあそんなところなんだろうか.身近がそういう傾向があるから凄く実感できるような気がする.だからこそ私も旅立つ決意をしたのかなとふっと思った. さらに, どうせ理系出身者なんていらねえんだよ。 まさしくその通り,上司の言うことを聞いてくれればいいので,逆にいろいろ知ってる人は煙たがられる.自分より優秀な部下がいると自分の出世に関わるから潰そうとする.または「優秀なんだから」という謎の理由で無理難題をふっかけて,「おまえならできるはずだ」という根拠のない自信で部下を潰していく. いまの日本社会は善人が損をするようにできているのではないかと疑ってしまう.正直者が得をする世界へと旅立つ準備をしておかないといけないかな.

Apache2 + FastCGI環境を構築する

構築メモ.ターゲットはFC6 or FC7.以下を参考にしました. pools.jp | Apache2.2+fastcgiで Ruby on Rails ##ダウンロードとインストール ###FastCGI Developer’s Kit/mod_fastcgiのダウンロード FastCGI Developer’s Kit http://www.fastcgi.com/dist/fcgi-2.4.0.tar.gz mod_fastcgi http://www.fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz ###展開とインストール FastCGI Developer’s Kit $ tar zxvf fcgi-2.4.0.tar.gz $ cd fcgi-2.4.0 $ ./configure $ make $ sudo make install $ sudo vim /etc/ld.so.conf.d/local-lib.conf local-lib.confの内容は /usr/local/lib gemでfcgiをインストール $ sudo gem install fcgi mod_fastcgi $ tar zxvf mod_fastcgi-2.4.2.tar.gz $ cd mod_fastcgi-2.

Railsの本を買う

今2冊あるんだけど,いろいろ評判の高いこれを買ってみることに. RailsによるアジャイルWebアプリケーション開発 第2版 著者: Dave Thomas, David Heinemeier Hansson, Leon Breedt, Mike Clark, Andreas Schwarz, James Duncan Davidson, Justin Gehtland 出版日: 2007-10-26 出版社/メーカー: オーム社 カテゴリ: Book ちなみに今あるのは下記の本. ライド・オン・Rails Ruby on Railsを徹底攻略 著者: 吉田 和弘, 馬場 道明 出版日: 2006-06-30 出版社/メーカー: ソフトバンククリエイティブ カテゴリ: Book Ruby on Rails入門優しいRailsの育て方 著者: 西 和則 出版日: 2006-07-31 出版社/メーカー: 秀和システム カテゴリ: Book

オブジェクトのコピー

cloneやdupだとshallow copyなので,deep copyするには a = "a" b = Marshal.load(Marshal.dump(a)) としなくてはいかん.つまり, :shadow copy:参照.ポインタのような感じ? :deep copy:複製.メモリ内のデータを異なる番地へコピーして,その番地の参照を戻すこと? な感じかな?もうちょい勉強せんといかんな....orz

古いマンガがおもしろのは?

いや,あえて言うまい.... 聖闘士(セイント)星矢 (7) (集英社文庫―コミック版) 著者: 車田 正美 出版日: 2001-05 出版社/メーカー: 集英社 カテゴリ: Book 聖闘士(セイント)星矢 (6) (集英社文庫―コミック版) 著者: 車田 正美 出版日: 2001-04 出版社/メーカー: 集英社 カテゴリ: Book Dragon quest―ダイの大冒険 (5) (集英社文庫―コミック版) 著者: 三条 陸, 稲田 浩司, 堀井 雄二 出版日: 2003-08 出版社/メーカー: 集英社 カテゴリ: Book Dragon quest―ダイの大冒険 (6) (集英社文庫―コミック版) 著者: 三条 陸, 稲田 浩司, 堀井 雄二

act_as_authenticated

前回の続き.どうやらuser_notifier.rbに問題があった模様.ちゃんとTestするべきだな.... class UserNotifier < ActionMailer::Base def signup_notification(user) setup_email(user) @subject += 'Please activate your new account' @body[:url] = "http://domain/account/activate/#{user.activation_code}" end def activation(user) setup_email(user) @subject += 'Your account has been activated!' @body[:url] = "http://domain/" end protected def setup_email(user) @recipients = "#{user.email}" @from = "info@domain" @subject = "Activation!" @sent_on = Time.now @body[:user] = user end end

Accountコントローラの修正

class AccountController < ApplicationController def signup # Activation前まで @user = User.new(params[:user]) return unless request.post? @user.save! #self.current_user = @user #redirect_back_or_default(:controller => '/account', :action => 'index') # Activationへ飛ばす redirect_to(:action => 'signup_notification') flash[:notice] = "Thanks for signing up!" rescue ActiveRecord::RecordInvalid render :action => 'signup' end # Notification用 def signup_notification end # ユーザをActivateする def activate @user = User.find_by_activation_code(param[:id]) if @user and @user.activate self.current_user = @user flash[:notice] = "Your account has been activated." end end end ###23:40 追記:Observerの設定 config/enviromnent.