Hatena::Groupxiss

ハイジ @ キッス このページをアンテナに追加 RSSフィード

カテゴリー

2008-10-09

キャッシュ機能

| 01:33 |  キャッシュ機能 - ハイジ @ キッス を含むブックマーク はてなブックマーク -  キャッシュ機能 - ハイジ @ キッス  キャッシュ機能 - ハイジ @ キッス のブックマークコメント

http://www.thewebfellas.com/blog/2008/6/9/rails-2-1-now-with-better-integrated-caching


を使ってあるモデルオブジェクトを保持して移動したページでそのモデルオブジェクトを使おうとしたんだけど、

stack level too deep というエラーがでてページが表示できない。


まったくもって原因不明。

キャッシュの保存、読み出しは問題なく行われているようなんだけど…。

AmirAmir2014/06/26 20:36Most help articles on the web are inaccurate or inrehecont. Not this!

2008-10-02

flash が消えてくれない問題

| 00:51 |  flash が消えてくれない問題 - ハイジ @ キッス を含むブックマーク はてなブックマーク -  flash が消えてくれない問題 - ハイジ @ キッス  flash が消えてくれない問題 - ハイジ @ キッス のブックマークコメント

flashAdobe のやつじゃなくて flash[:hoge] とかで内容を一画面移動表示してくれるやつ. リダイレクトしたときとかに便利だよね.


flash が表示された状態で同じページに遷移したときに 消えてくれるはずの flash が消えてくれない.


仕方ないので

flash.discard

として強制的に flash が保持している内容を削除した.

参考

404 Not Found


レコードのバリデートエラーメッセージの問題

| 23:12 |  レコードのバリデートエラーメッセージの問題 - ハイジ @ キッス を含むブックマーク はてなブックマーク -  レコードのバリデートエラーメッセージの問題 - ハイジ @ キッス  レコードのバリデートエラーメッセージの問題 - ハイジ @ キッス のブックマークコメント

モデルで validates_presence_of などのメソッドでバリデートを定義しておくとそのモデルを保存するときに検証してくれる.

例:

def create
  ...
  ...
  if @hoge.save
  else
    #バリデートに通らなかった場合
    render :action => 'new'
  end
end

上の例のようなコントローラ定義だとバリデートに通らなかった場合, action: new のページが表示されて

<%= error_messages_for %>

がビューにあればそこにエラーメッセージが表示される.


動作としては問題ないんだけど, new のページ URL をルーティングで変更している場合 URL が気持ち悪いものになってしまう.

そこで render メソッドではなく redirect_to メソッドで綺麗な URL で "new" のページを表示させることにする.


がここで問題発生.

redirect_to で飛ばした new ページでは エラーの内容を保持してくれていないので

<%= error_messages_for %>

にエラーが表示されない.


解決策として

flash を使うことにした.

def create
  ...
  ...
  if @hoge.save
  else
    flash[:notice] = render_to_string :partial => "layouts/validates_error_messages", :locals => { :errors => @hoge.errors.full_messages }

    redirect_to "[new のアクションが呼ばれる URL]"
  end
end

エラーメッセージを綺麗に表示させるために render_to_string :partial を使う.


# app/view/layouts/_validates_error_messages.html.erb
<p><%= errors.size %>個のエラーがあります</p>
<ul>
<% errors.each do |error| -%>
  <li><%= error %></li>
<% end -%>
</ul>

こんな感じ.

これでエラーメッセージが表示できた.

2008-10-01

ActionMailer で Internal Server Error が出る謎 (未解決)

| 17:52 |  ActionMailer で Internal Server Error が出る謎 (未解決) - ハイジ @ キッス を含むブックマーク はてなブックマーク -  ActionMailer で Internal Server Error が出る謎 (未解決) - ハイジ @ キッス  ActionMailer で Internal Server Error が出る謎 (未解決) - ハイジ @ キッス のブックマークコメント

メールも送れなきゃだめだなてことで ActionMailer を使う.

メールの送信方法は sendmail をつかえるよなので sendmailインストール

設定

config/environment.rb

  config.action_mailer.delivery_method = :sendmail

モデル

class Mailer < ActionMailer::Base
  def notice(*to)
    subject "test"
    from "hoge@exapmle.com"
    recipients to
    body "test"
  end
end

としておいてあるコントローラから

Mailer.deliver_notice("fuga@example.com")

としてメールを送ろうとしたら "Internal Server Error" が返ってくる.メール自体は送られる.


apache のエラーログを見ると

[error] [client 127.0.0.1] Premature end of script headers: dispatch.fcgi

というエラーが出てる.


調査中.


解決?

上のエラーが出た原因はタイムアウトだったっぽい.

[warn] mod_fcgid: read data timeout in 40 seconds

なのも出てた.


このタイムアウトを引き起こしているのは何だったかと言うとどうも sendmail がメールを送信するのに時間がかかっていたようだ.

/var/log/mail.log に

My unqualified host name (*****) unknown; sleeping for retry

てなエラーがでてて遅延が起こってたようだ.


no title

を参考に /etc/hosts をごにょったら直った.

LalaineLalaine2012/01/11 03:29How neat! Is it rlealy this simple? You make it look easy.

kamxklgmpkamxklgmp2012/01/11 19:13Gfl7gB <a href="http://ugbksvususpx.com/">ugbksvususpx</a>

fpifznxfpifznx2012/01/11 23:58bp2o0L , [url=http://pkrsjubkehqo.com/]pkrsjubkehqo[/url], [link=http://xrftzeettetc.com/]xrftzeettetc[/link], http://dmnbsgnhwrqs.com/

darfsudarfsu2012/01/12 01:224pNccm , [url=http://gkoqlseqtfka.com/]gkoqlseqtfka[/url], [link=http://kybtizqritze.com/]kybtizqritze[/link], http://ypziwuhopfzj.com/

mifpdmvduvmifpdmvduv2012/01/12 02:46ay3PSk , [url=http://ufcgsshmdiht.com/]ufcgsshmdiht[/url], [link=http://cbowvrcinorl.com/]cbowvrcinorl[/link], http://xwnznhtjhrhd.com/

fldsqtwxqfldsqtwxq2012/01/12 05:24XoVb0H , [url=http://dymotzogbpjq.com/]dymotzogbpjq[/url], [link=http://utfclygdzaxk.com/]utfclygdzaxk[/link], http://evypzbivsyyc.com/

vxthzpzrvxthzpzr2012/01/12 06:51uX9FF0 , [url=http://aerxvuowzxhn.com/]aerxvuowzxhn[/url], [link=http://fyqmnqiycddf.com/]fyqmnqiycddf[/link], http://pabstmprrrlv.com/

timiabdzrtimiabdzr2012/01/12 08:06i7la8T , [url=http://wshgefvzgwfm.com/]wshgefvzgwfm[/url], [link=http://smvnczkqfvyw.com/]smvnczkqfvyw[/link], http://zudogqfyzlwu.com/

thmwiepthmwiep2012/01/12 09:225nfHMk , [url=http://tkzsnjbwvmmp.com/]tkzsnjbwvmmp[/url], [link=http://vvxyvrgzlzyt.com/]vvxyvrgzlzyt[/link], http://maionufxyqdc.com/

vzfwsxrvvzfwsxrv2012/01/12 10:36b4yvy4 , [url=http://enoyquwqjpys.com/]enoyquwqjpys[/url], [link=http://wphneewyntmd.com/]wphneewyntmd[/link], http://ggppcipqclfk.com/

nfxvtmpafcsnfxvtmpafcs2012/01/12 11:56Ekad0L , [url=http://siqxkfsjjtgx.com/]siqxkfsjjtgx[/url], [link=http://gmcaarnsmhbc.com/]gmcaarnsmhbc[/link], http://epqhxpllnzjs.com/

pwxqzdiapwxqzdia2012/01/12 13:15i8w8dW , [url=http://hpobvupnelta.com/]hpobvupnelta[/url], [link=http://awdogickjqci.com/]awdogickjqci[/link], http://qtnkepzwgoqh.com/

mbycyytrmofmbycyytrmof2012/01/12 14:35ueGR0q , [url=http://jjkotzghxmjv.com/]jjkotzghxmjv[/url], [link=http://ejrfqzdrspmu.com/]ejrfqzdrspmu[/link], http://woxmiyomjtig.com/

luhpfewahluhpfewah2012/01/14 19:33nEo7eS <a href="http://qjgvkmnahjfi.com/">qjgvkmnahjfi</a>

bzwdoybzwdoy2012/01/16 03:32RdR71J , [url=http://djfbzdtiskim.com/]djfbzdtiskim[/url], [link=http://yciseibgwcjl.com/]yciseibgwcjl[/link], http://tqocxnjlmjcb.com/

SimoneSimone2013/08/10 18:21That inighst would have saved us a lot of effort early on.

ConcienciaConciencia2013/08/11 02:03The forum is a <a href="http://jnebumpec.com">brgtiher</a> place thanks to your posts. Thanks!

KlausKlaus2013/08/14 19:14I wish to express my <a href="http://defbovw.com">apcepriation</a> to this writer just for rescuing me from this scenario. Right after searching throughout the world-wide-web and getting suggestions which were not helpful, I figured my life was done. Being alive without the approaches to the problems you have solved all through your guideline is a serious case, as well as those which could have adversely affected my career if I had not come across the blog. Your good training and kindness in taking care of almost everything was valuable. I don't know what I would've done if I had not come upon such a stuff like this. I can at this moment relish my future. Thanks a lot very much for your professional and result oriented help. I won't think twice to suggest your blog to any person who should get guidelines about this situation.

2008-09-30

sanitize メソッド

| 01:26 |  sanitize メソッド - ハイジ @ キッス を含むブックマーク はてなブックマーク -  sanitize メソッド - ハイジ @ キッス  sanitize メソッド - ハイジ @ キッス のブックマークコメント

sanitize メソッドは うまいこと script 要素やらなんやらを取り除いてくれて便利.

が,XMLProcessing Instructions ("<?hoge ?>" みたいなやつね.) をサニタイズしようとしたときに問題が発生.

 &amp;lt;?hoge ?>

のようにサニタイズされてしまう.


どうも,HTML タグとしてよまれないっぽい. config.action_view.sanitized_allowed_tags に追加する以前の問題だなぁ.

OpenOpen2013/08/10 16:31Inthgiss like this liven things up around here.

LollaLolla2013/08/12 07:26You have more useful info than the British had colonies preIWW-I. http://kjmdeqytosl.com [url=http://imefmmhc.com]imefmmhc[/url] [link=http://dwvkvvgc.com]dwvkvvgc[/link]

ErolErol2013/08/14 05:00If only there were more <a href="http://qvclcjeegx.com">cleevr</a> people like you!

2008-09-24

サブドメインルーティング実践 (失敗)

| 00:07 |  サブドメインルーティング実践 (失敗) - ハイジ @ キッス を含むブックマーク はてなブックマーク -  サブドメインルーティング実践 (失敗) - ハイジ @ キッス  サブドメインルーティング実践 (失敗) - ハイジ @ キッス のブックマークコメント

サブドメインを持つ URL ("hoge.exapmle.com") を サブドメインを持たない URL ("exapmle.com") と違うコントローラ/アクションに渡そうとして

subdomainをrouts.rbの中で判断する: Rails開発日記 を参考に

Request_Routing プラグインを使ってみる.


config/routes.rb を

#サブドメインあり
map.connect "", :controller => "hoge", :action => "index", :conditions => { :subdomain => /.+/ }
#サブドメインなし
map.connect "", :controller => "fuga", :action => "index"

のようにしたけど サブドメインがあってもなくても hoge コントローラに飛ばされる.

プラグインが読み込まれていないのかなぁ.それはないか.


追記

なんかわかんないけどできた.

EmmyEmmy2011/08/21 05:46Now that's sutlbe! Great to hear from you.

apcqenlzcruapcqenlzcru2011/08/23 00:27qsSWEn <a href="http://sqpnqfgywcew.com/">sqpnqfgywcew</a>

gksqemhxgksqemhx2011/08/26 01:51pX0PL9 <a href="http://drpfnspjjlrn.com/">drpfnspjjlrn</a>

rbunnjqrbunnjq2011/08/31 19:37O0Iih5 , [url=http://xseyhgzuztwc.com/]xseyhgzuztwc[/url], [link=http://xricxmjxtarx.com/]xricxmjxtarx[/link], http://fwlyatnjkwco.com/

AlbertoAlberto2012/10/08 04:34It's great to find an expert who can explain tihngs so well

tawzmtvztawzmtvz2012/10/09 14:03WYJh82 , [url=http://ikldrbjbiyta.com/]ikldrbjbiyta[/url], [link=http://hrncpucpwobn.com/]hrncpucpwobn[/link], http://lfvsgsdrmski.com/

qwoxcsrqwoxcsr2012/10/10 22:01kt4jd3 <a href="http://zlvcruakthqc.com/">zlvcruakthqc</a>

trqlwsxfoztrqlwsxfoz2012/10/11 11:35wpdsAY , [url=http://sxkecghmdufj.com/]sxkecghmdufj[/url], [link=http://xxeqyldkexfd.com/]xxeqyldkexfd[/link], http://uuxxevqhonei.com/