[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 15:53 / Filesize : 279 KB / Number-of Response : 987
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【Ruby】Ruby on Rails Part8



1 名前:nobodyさん [2009/09/13(日) 20:49:34 ID:kz4rC4Dx]
■前 Ruby on Rails Part7
pc11.2ch.net/test/read.cgi/php/1241100447/

■参考サイト
<英語>
本家:www.rubyonrails.org
API document:api.rubyonrails.com/
開発者のblog:weblog.rubyonrails.org/
参考wiki:wiki.rubyonrails.org/rails

<日本語>
Rails' wiki: wiki.fdiary.net/rails/

■参考スレ(プログラム板)
Rubyについて Part 37
pc12.2ch.net/test/read.cgi/tech/1251029267/
Ruby 初心者スレッド Part 30
pc12.2ch.net/test/read.cgi/tech/1249687283/

305 名前:nobodyさん mailto:sage [2009/10/23(金) 17:53:28 ID:???]
フォームから取得した値をコントローラで受けとって、何もせず再度表示させたいと思い以下のコードを書きましたが、何も表示されません。

ビューのコード

<% form_tag :action => 'name' do -%>
<p>NAME
<%= text_field_tag "t_field" %><br/><br/>

<%= submit_tag "作成" %>
<% end -%>

<%= @name %></p>

コントローラのコード

def name
@name = params[:t_field]
redirect_to :action => 'list'
end

:action => 'list' のlistは、scaffoldで作成されるlistです。

テキストフィールドの値を受け取るコントローラのコードが間違っているのでしょうか、
それとも<%= @name %>としただけのビューのコードが間違っているのでしょうか?
どなたか教えて頂けないでしょうか。よろしくお願いします。

306 名前:nobodyさん mailto:sage [2009/10/23(金) 18:12:39 ID:???]
ruby script/server -u
でデバックモードで起動してくれるからログ見ろ

307 名前:nobodyさん mailto:sage [2009/10/23(金) 18:22:29 ID:???]
HTML間違ってる訳だが

308 名前:nobodyさん mailto:sage [2009/10/24(土) 01:13:38 ID:???]
リダイレクトしたらフォームの値は消えるだろ。
GETでパラメータ渡すか、セッション使わない限り。

ビューといっているのが、list.html.erb(またはlist.rhtml)なのであれば、
render :action => :list
で動くだろう。
もし、違うファイル名(例えば、name.html.erbとか)だったらそれを指定する必要がある。

309 名前:273 mailto:sage [2009/10/24(土) 20:56:08 ID:???]
ただの愚痴とか情報弱者とかご指摘をいただきました>>273でございます。
Snow Leopardのクリーンインストールをしたところ、問題なく動く
ようになりましたので、ご報告させていただきます。
あちこちに書かれている通り、Mysqlの64ビット版をインストール、
mysql gemを-arch x86_64フラグ付きインストールでうまくいきました。
やっぱり、OSのアップグレードのような作業で手間を惜しむと後でよけいに苦労
することが多いのは世の常ですね。

310 名前:nobodyさん mailto:sage [2009/10/24(土) 22:59:57 ID:???]
gem入れ直すだけで十分だったのに

311 名前:nobodyさん mailto:sage [2009/10/25(日) 05:56:11 ID:???]
>>308

パラメータ消えるんですね。知らなかったです。
リダイレクトとレンダーの違いがよく分かってなかったです。
回答有難うございました。

312 名前:nobodyさん mailto:sage [2009/10/26(月) 18:27:15 ID:???]
マカってホント情報弱者だなw

313 名前:nobodyさん mailto:sage [2009/10/27(火) 17:37:01 ID:???]
既存DBがあって、それを利用してwebアプリをつくりたいのですが、
テーブル命名規則がRubyonRailsに完全に沿ってない。(idがauto_incrementとかは沿っている)
テーブル自体の命名規則はmodelsにset_table_nameで入れればエイリアスだと
認識してくれるので問題ないわけですが、
問題はカラムorz
リレーションを張ってあるカラム名が適当なため、
カラム名にエイリアスを乗っけたいのですが方法はありますかね?
hogeテーブル      fugaテーブル
-------------   ----------------
id                id
title              h_id ←これが「hoge_id」であってほしかった
created_at        contents
updated_at        created_at
                 updated_at
既存TBLが「h_id」で、railsの命名規則だと「hoge_id」でなきゃいけないのだけれどもカラム名の変更はできないという…
できそうなんだけどググっても不明ですどなたか教えて頂けませんか



314 名前:nobodyさん mailto:sage [2009/10/27(火) 18:34:14 ID:???]
こういうのならば
belongs_to :folder , :foreign_key => "h_id"

ここの真ん中らへんにあります
api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html
Specify the foreign key used for the associationで検索してください



315 名前:nobodyさん mailto:sage [2009/10/27(火) 18:34:38 ID:???]
:foreign_key

316 名前:313 mailto:sage [2009/10/27(火) 19:15:30 ID:???]
>>314
>>315
おおおうああできました!
ありがとうございます。
そうか、foreign_key でカラムに固有名をつけてあげればいい、ということなんですね。
すっかり凝り固まっていて思い至りませんでした。ありがとうございました!

317 名前:313 mailto:sage [2009/10/27(火) 19:21:50 ID:???]
あああちがう、foreign_keyで外部キー名を指定してあげる、ですね
理解が浅くて申し訳ないです

318 名前:nobodyさん [2009/10/28(水) 14:26:55 ID:/NsMtcRB]
>>317
そのDBを、新しく作るrailsアプリからしか使わないんだったらマイグレーションでDBの定義変えちゃった方がいいと思うけれど。

foreign_key使うより個人的にはそっちの方がrailsのやり方に沿ってて好き。というかカラムの名前がrailsの命名規則に従ってないのって気持ち悪くない?まぁ人それぞれだと思うけど。

319 名前:nobodyさん mailto:sage [2009/10/28(水) 16:11:34 ID:???]
そんなこと出来る環境なら誰だってそうするだろ。
既存DB弄れないのはよくあること。

320 名前:318 [2009/10/28(水) 17:48:49 ID:/NsMtcRB]
>>そんなこと出来る環境なら誰だってそうするだろ。
>>既存DB弄れないのはよくあること。
まぁだからもちろん、「そのDBを、新しく作るrailsアプリからしか使わないんだったら」なのだけれど。
313が業務じゃなくて個人的に色々作ってる人のような気がしたので、
だったらDBの定義変更もできるんじゃないかなと思って。なんとなく。

321 名前:nobodyさん mailto:sage [2009/10/28(水) 17:57:57 ID:???]
質問よろしいでしょうか?

うまくいきません、どうやったらよいものでしょうか?

322 名前:nobodyさん mailto:sage [2009/10/28(水) 17:59:40 ID:???]
よいよい詳しく申してみなさい

323 名前:nobodyさん mailto:sage [2009/10/28(水) 18:00:59 ID:???]
すいません、質問の中身書き忘れました・・・

form_forとsubmitで、同じフォームのデータに「送信」ボタンと「送信とプレビュー」ボタンの2つをつけたいと思っています。
「送信」ボタンでは、/hage に送信し、
「送信とプレビュー」では /hage/preview に送信し別窓で開きたいと考えています。

どのように実現するのが早いでしょうか?
JavaScriptを絡めないと無理なものでしょうか?



324 名前:nobodyさん mailto:sage [2009/10/28(水) 19:55:21 ID:???]
>>323
submitを一つのformに複数置く場合、アプリではsubmitを名前で
区別して動作を変えることができる。

結果表示の方だが、確か、formにも target="_blank" を指定できたと
思う。ただし、今回は、一つのformの複数のsubmitという条件なので、
片方のときだけ、実際にサーバにデータを送る寸前にtargetをすり替える
ようなJavaScriptを用意する必要があると思う。


325 名前:nobodyさん mailto:sage [2009/10/29(木) 09:41:06 ID:???]
>>324
サンクス

そっか、submitの名前で区別して別の処理すればいいか
target="_blank"相当のボタン押下時の埋め込みですが、JavaScript試してみます。
というか、ちょっと試してみて、上手く言ってないので、JavaScript関連スレでお聞きしたいと思います。

ありがとうございました

326 名前:313 mailto:sage [2009/10/29(木) 11:06:29 ID:???]
>>318
>>319
提案とお気遣いありがとうございます。
使用しているDBは別のフレームワークで利用しているもので、
それにRailsで拡張アプリみたいにしてみたかったのでカラムの変更なしが前提でした。
でも本来ならばRails方式に変更した方がいいし、別フレームワークでもRailsと同じ方式でカラム命名ができるので、
Rails側アプリが巨大化する前に手をうとうと思います。
Railsの生産性の高さに元アプリから作り直しそうな勢いですw

327 名前:nobodyさん mailto:sage [2009/10/30(金) 02:39:16 ID:???]
3.0って1.9.2が出たあとか?来年の4月に洋書で本が出るようだが
2系で作って大幅改修が嫌だから待ってるのだが遅すぎるわ

328 名前:nobodyさん mailto:sage [2009/10/30(金) 02:43:45 ID:???]
>>327
洋書はどこから出るの?

329 名前:nobodyさん mailto:sage [2009/10/30(金) 07:45:24 ID:???]
>>328
これのつもりだったが
www.amazon.co.jp/Professionelle-Webentwicklung-mit-Ruby-Rails/dp/3826655400/ref=sr_1_10?ie=UTF8&s=english-books&qid=1256856141&sr=8-10

これはもうすぐ出るんだな
www.amazon.co.jp/Beginning-Rails-Jeffrey-Allan-Hardy/dp/1430224339/ref=sr_1_1?ie=UTF8&s=english-books&qid=1256856141&sr=8-1

よく見たら上のはドイツ語だった・・・

330 名前:nobodyさん mailto:sage [2009/10/30(金) 08:21:29 ID:???]
ぶっちゃけその3はRails3じゃなくて、本自身の第3版じゃないか?


331 名前:nobodyさん mailto:sage [2009/10/30(金) 08:22:43 ID:???]
失礼、英語の本のほうはRails 3か。

332 名前:nobodyさん mailto:sage [2009/10/30(金) 12:38:37 ID:???]
ActeveRecordでupdate_atだけ更新する方法を教えてください

333 名前:nobodyさん mailto:sage [2009/10/30(金) 22:40:57 ID:???]
>>332
railsのバージョンによって回答数が異なります。
バージョンは何?



334 名前:nobodyさん mailto:sage [2009/10/31(土) 06:45:29 ID:???]
>>333
2.3.2です

335 名前:nobodyさん mailto:sage [2009/10/31(土) 10:44:38 ID:???]
Railsのプロジェクトをチェックアウトして更新したのですが、追加したページにアクセス出来ません。

The page you were looking for doesn't exist.

You may have mistyped the address or the page may have moved.

というページが表示されます。Apacheを再起動してみましたが、表示されないままでした。

以前からあったページにはアクセスできますし、Mongrelを立ち上げてローカルからはアクセス出来ます。

production.logを確認してみましたが、何も書かれていませんでした。

環境はFedora10 + Apahe + passengerです。
どなたか解決方法を教えて頂けないでしょうか。 よろしくお願いします。

336 名前:nobodyさん mailto:sage [2009/10/31(土) 11:17:28 ID:???]
>>335
そのエラーてどこのレベルでててるんだろ。
真ん中に赤枠があって、その中にエラー文字列があるなら、Railsがエラーはいているだろうけど

apacheのログ確認してみた?

337 名前:nobodyさん mailto:sage [2009/10/31(土) 11:49:10 ID:???]
"GET/financial_statenents HTTP/1.1" 404

ログの見方はよく分からないのですが、Railsで用意された404が表示されているみたいです。

338 名前:nobodyさん mailto:sage [2009/10/31(土) 12:10:24 ID:???]
追加したってのは、Rails.root 直下の public の下にHTMLファイルを
追加したってこと? Railsの機能を追加したってこと?



339 名前:nobodyさん mailto:sage [2009/10/31(土) 12:47:05 ID:???]
新しいコントローラのクラスと、それに対応するビュー、モデル、データベーステーブルを追加しました。

340 名前:nobodyさん mailto:sage [2009/10/31(土) 12:59:55 ID:???]
とりあえず、apacheではなくRailsプログラムの問題のようなので、

developmentモードで動かしてみる
→Passengerの設定にRailsEnvというのがある。

または、

productionモードのまま、ログレベルを:debugに変更
→config/environments/production.rbを弄る。

などでより詳しい情報を得ることを勧める。


341 名前:nobodyさん mailto:sage [2009/10/31(土) 13:34:57 ID:???]
何度も申し訳ないのですが、Passengerの設定ファイルってどこにあるのでしょうか?

342 名前:nobodyさん mailto:sage [2009/10/31(土) 14:46:41 ID:???]
PassengerでRailsEnv指定できました。

Routing Error

no route found to match "/financial_statements" with{:method=>:get}

という表示に変わりました。routes.rbに何か設定を追加すればよいのでしょうか?

343 名前:nobodyさん mailto:sage [2009/10/31(土) 14:50:58 ID:???]
いいかげんにしろ



344 名前:nobodyさん mailto:sage [2009/10/31(土) 15:00:09 ID:???]
/financial_satementesというURLでRailsになんらかのアクションを
してほしいなら、あなたが追加したコントローラとそいつのメソッド
がそのURLにマッピングされなければならない。

rake routes してみるとおそらく /financial_statements に反応する
ルールがないはず。

routes.rbに
map.resources :financial_statements とでも書けばいいんじゃない?


345 名前:nobodyさん mailto:sage [2009/10/31(土) 15:39:28 ID:???]
回答有り難うございます。

map.resources :financial_statementes は上手くいきませんでした。

同じようなURL(/controllername)はマッピング出来ているのに/financial_statementsはエラーになる理由がよく分からないです。。

346 名前:nobodyさん mailto:sage [2009/10/31(土) 15:42:24 ID:???]
まー、あとは routes.rb の問題ぽいからドキュメントみつつ
rake routes しつつ、試行錯誤してくれい。


347 名前:nobodyさん mailto:sage [2009/10/31(土) 19:08:53 ID:???]
おまたせしました
質問です
RoRはWindows7で動作しますか?

348 名前:nobodyさん mailto:sage [2009/10/31(土) 20:26:19 ID:???]
動かないと思います

349 名前:nobodyさん mailto:sage [2009/11/05(木) 17:41:39 ID:???]
Ruby on Rails解説書の定番"Agile Web Development with Rails"の
日本語最新版『RailsによるアジャイルWebアプリケーション開発 第3版』が、
この2009年11月末にオーム社より発行されます。

ついにでるー.

350 名前:nobodyさん mailto:sage [2009/11/05(木) 21:57:32 ID:???]
>>350
d
ssl.ohmsha.co.jp/cgi-bin/menu.cgi?&ISBN=978-4-274-06785-3

351 名前:nobodyさん mailto:sage [2009/11/05(木) 23:41:40 ID:???]
Head first railsもRails2.3対応で同時期に出るらしいんだけど,
どっちがいいかな

352 名前:nobodyさん mailto:sage [2009/11/06(金) 01:47:30 ID:???]
以下のようなプログラムを作成し、実行しています。

strSQL="select count(*) as cnt ,fk_table_id from datas where del_flg=0 group by id order by count(*)"
hoge=Data.find_by_sql(strSQL)
--------
<table>
<%for i in (0..hoge.length-1) %>
<tr><td><%=hoge[i].fk_table_id%></td><td><%=hoge.cnt%></td></tr>
<%end %>
</table>
-----------------
ですが、ときどき
undefined method `fk_table_id`
というエラーがエラーログに出ています。
何か対処方法はないでしょうか?
sqlは一例で、日によって発生場所がまちまちになっています。

環境
os centos
ruby 1.8.7 p-174
rails 2.1.2
mysql tritonn-1.0.12-mysql-5.0.67

クエリキャッシュを有効にしていたのですが
エラーの出現回数があまりに多いので
毎回クリアさせてみたところ多少減りました。

353 名前:nobodyさん mailto:sage [2009/11/06(金) 01:47:47 ID:???]
そのタイミングでrails3が来たら全員涙目w



354 名前:nobodyさん mailto:sage [2009/11/06(金) 03:08:33 ID:???]
一度出たら2年くらい出ないから、3系を待ってくれた方がよかったかも
正直2.3系はあまり困ってない

355 名前:nobodyさん mailto:sage [2009/11/06(金) 17:55:44 ID:???]
質問させてください。

/lib/xxx.rbのモジュールをControllerでincludeして利用しています。
BackgrounDRb(/lib/workers/yyy_worker.rb)でも
xxx.rbのモジュールをincludeして利用したいのですがどうすればいいでしょうか?

356 名前:nobodyさん [2009/11/07(土) 00:52:56 ID:ygEaPrn0]
Rails勉強中なのですが、DBのリレーションのところでつまずいてます。
目的:下記条件下で、new.html.erbから名字と子供のnameを登録したい。

テーブル
Parent
id:
myoji:

Child
id:
parent_id:
name:

という二つのテーブルがあり
それぞれのモデルには、
has_one :child
belongs_to :parent
を指定しています。

357 名前:nobodyさん [2009/11/07(土) 00:54:17 ID:ygEaPrn0]
上の続きです。

コントローラーには、
main.rb
def new
@user = Parent.new
end
def create
@user = Parent.new(params[:data])
@user.save
end

Viewのnew.html.erbには
<% form_for :parent,@user,:url=>{:action=>'create',:id=>@user} do |form|%>
名字:<%= form.text_field :myoji %>
名前:<%= form.text_field :name %>
<%submit_tag '登録'%>
<%end%>
とします。
間違っているところを具体的ご指摘いただけないでしょうか。
rails rubyなどは最新バージョンです。



358 名前:nobodyさん [2009/11/07(土) 01:01:03 ID:ygEaPrn0]
すみません。
@user = Parent.new(params[:data])
ではなく、
@user = Parent.new(params[:user])
だと思うのですが、、、まちがってますよね。。。

359 名前:nobodyさん mailto:sage [2009/11/07(土) 02:01:48 ID:???]
>>355>>356も、どう困ってるか書いてないのだが同じやつか?

360 名前:nobodyさん mailto:sage [2009/11/07(土) 02:36:17 ID:???]
自分でも何が分かってないのか分かってないんだろ。
なんかよく分からないけどヒントください、みたいな。

361 名前:nobodyさん [2009/11/07(土) 02:36:32 ID:ygEaPrn0]
いえ、違う人です。

いろいろ変えてやってみたのですがいろいろなエラーで
収集がつかなくなったので、根本的に、基本的なところで
どう間違っているのか、指摘してもらえればありがたいなーと
思いまして。。(^^;;

362 名前:nobodyさん mailto:sage [2009/11/07(土) 02:39:37 ID:???]
そのコントローラーに対してどういうアクセスをしたのか、
その結果どういうエラーが出たのか、
具体的に示さないとあかの他人がアドバイス出来るはずないでしょ。

363 名前:nobodyさん mailto:sage [2009/11/07(土) 08:13:45 ID:???]
何もしてないならコントローラの名前がmain.rbって時点で変。




364 名前:nobodyさん mailto:sage [2009/11/07(土) 08:40:04 ID:???]
ずーっと使っているとメモリの消費量がすごいことになるんだけど
どうしたらいいの?
いったん再起動するの?

365 名前:nobodyさん [2009/11/07(土) 09:14:59 ID:iBTE7BNg]
自分の場合、monitなどの監視ツールでメモリの使用量が一定量を超えたら自動で再起動させてる

366 名前:nobodyさん mailto:sage [2009/11/07(土) 09:15:41 ID:???]
freeしても使用メモリはOSが実際に必要とするまで返還されなかったり
するからとりあえずOSとかいろいろ教えれ。


367 名前:nobodyさん mailto:sage [2009/11/07(土) 09:22:59 ID:???]
>>364
放っておくと死ぬから頻繁に再起動するしかないw

368 名前:nobodyさん [2009/11/07(土) 09:53:27 ID:iBTE7BNg]
Passengerの場合は、5分間アクセスがなければプロセスを終了させるとか、1000回アクセスを処理したら終了などの設定ができるので、特にツールを使わなくても再起動できるのでおすすめ。

369 名前:nobodyさん mailto:sage [2009/11/07(土) 11:37:51 ID:???]
rubyってガベコレしてないの?

370 名前:nobodyさん mailto:sage [2009/11/07(土) 12:03:22 ID:???]
してるけど、Conservative GCなのでどうがんばっても回収漏れは発生する。


371 名前:nobodyさん mailto:sage [2009/11/07(土) 12:07:23 ID:???]
>>366
ubuntu 8.04をxp上のvmware playerで動かしてる
メモリの割り当ては512M

monitなどで再起動か
なるほろ

372 名前:nobodyさん mailto:sage [2009/11/07(土) 12:14:14 ID:???]
GCはOSからもらっているメモリで再利用していいはずの
箇所を実際に再利用できるようにすることなので、
OSにメモリを返すという意味ではない。



373 名前:nobodyさん mailto:sage [2009/11/07(土) 14:27:25 ID:???]
じゃあ再起動しなくていいはずなのに
どうして再起動しないと固まるんだろうw



374 名前:nobodyさん mailto:sage [2009/11/07(土) 15:00:41 ID:???]
GC以外のところに原因があるからという風に読めるな

375 名前:nobodyさん mailto:sage [2009/11/07(土) 16:06:55 ID:???]
railsお勧めのレン鯖って存在しますか?

376 名前:nobodyさん mailto:sage [2009/11/07(土) 16:36:34 ID:???]
メモリリークしまくるのはオブジェクト指向言語の伝統だし。

377 名前:nobodyさん mailto:sage [2009/11/07(土) 16:40:02 ID:???]
ちょいと質問があります。

modelに書く処理をmoduleにまとめておきたいのですが、うまく行きません。
module内にnamedscopeの定義をまとめて書いたのですが、

 undefined method `named_scope' for ModelSupport:Module

などといわれてしまいます。

現在は例として以下のような感じで記述しています(名前は例なのでつっこまないで)
item.rb(Itemモデル)に

class Item < ActiveRecord::Base
  include ModelSupport
end

lib/model_support.rbに、
module ModelSupport
  named_scope :new_post, lambda{|num| {:limit => num}}
end

うまく、module化するにはどのように書いたものでしょうか?

378 名前:nobodyさん mailto:sage [2009/11/07(土) 16:42:07 ID:???]
>>375
定評あるのはslicehostかな?
最近なら、Rackspaceとか

379 名前:nobodyさん mailto:sage [2009/11/07(土) 17:02:18 ID:???]
>>375
ちょっと試したいだけなら heroku の無料プラン。

>>377
その書き方の場合、named_scope は module ModelSupport のスコープで実行される。
実行されるというのはメソッドが呼ばれるという意味ね。
例)
module Hoge
puts "hoge"
end
#=> hoge

単なるモジュールな ModelSupport は named_scope を知らないので undefined method になる。
で、どうすればいいかというとリフレクションを使う。

module ModelSupport
def self.included(base)
base.class_eval do
named_scope :new_post, lambda{|num| {:limit => num}}
end
end
end

module が include されたときに included が呼ばれるので、
class_eval を使って base(=includeしたクラス)のコンテキストで name_scope を呼ぶ。

380 名前:377 mailto:sage [2009/11/07(土) 17:12:43 ID:???]
>>379
うほっ!できました、できました!

他のRailsプラグインとかもそういうような書き方しててナンダコレ?とか思ってました。
スコープ考慮しないといけないんですね。

これ、慣用句的な書き方みたいですね。

今までmoduleの中身はincludeした方のスコープで動くもんだと思ってたw そういうことだったのか

381 名前:nobodyさん mailto:sage [2009/11/07(土) 19:06:05 ID:???]
>>373
>>じゃあ再起動しなくていいはず
逆。OSには返してないわけだから、基本的にOSから見た
プロセスが食うメモリってのは増える一方。


382 名前:nobodyさん mailto:sage [2009/11/07(土) 19:46:08 ID:???]
freeしてもOSにメモリを返却するってわけじゃないんだよな。
プロセスのメモリサイズをいじるのはsbrkとかbrkだっけ?


383 名前:nobodyさん mailto:sage [2009/11/07(土) 20:08:11 ID:???]
>>379
自分には関係ないけど
なるほどーと思った



384 名前:nobodyさん mailto:sage [2009/11/07(土) 21:19:04 ID:???]
>>379
宣言的に見えるけど、実のところnamed_scopeもただの
メソッドだからな。


385 名前:nobodyさん mailto:sage [2009/11/08(日) 02:45:09 ID:???]
qmailで受信して、.qmailのパイプ経由で
script/runnerしてメール処理をしてるのだが、
一度受信したメールが何度も繰り返し送られてくる。

これって、こういうものなのかな?
それとも的確な処理をしてないから?


386 名前:nobodyさん mailto:sage [2009/11/08(日) 02:58:14 ID:???]
受信したら消せよ

387 名前:nobodyさん mailto:sage [2009/11/08(日) 03:13:16 ID:???]
うそん

388 名前:nobodyさん mailto:sage [2009/11/08(日) 03:16:34 ID:???]
外部から何度も送られてくるのよ。
受信したメールをコマンドで処理するのみで
保存しないようにしても症状は同じ。

受信したときに相手のサーバに的確なメッセージを
返してあげないとダメなのかな?
そういうのはqmailが勝手にやってくれてると思うのだけど…

389 名前:nobodyさん mailto:sage [2009/11/08(日) 10:25:46 ID:???]
>>388
> そういうのはqmailが勝手にやってくれてると思うのだけど…

おいおい


390 名前:nobodyさん mailto:sage [2009/11/08(日) 11:28:57 ID:???]
これがruby厨

391 名前:nobodyさん mailto:sage [2009/11/08(日) 14:55:17 ID:???]
そんなくれくれruby厨に助言してくれよう。
終了コード0返すだけじゃだめなの?

392 名前:nobodyさん mailto:sage [2009/11/08(日) 16:35:04 ID:???]
ActiveRecord::Migration.execute('CREATE TABLE hoge (・・・); CREATE INDEX ・・・;')
とかしてもインデックス作られないんだけどCREATE TABLEだけしか実行してくれないの?

393 名前:nobodyさん mailto:sage [2009/11/08(日) 18:22:12 ID:???]
そんな事はない。
インデックスも正しく作成される。
その前にマイグレーションを使っているのに、わざわざSQLを直接実行するのはなんでだ?




394 名前:nobodyさん mailto:sage [2009/11/09(月) 20:11:21 ID:???]
Railsではidを渡すところに大概は、Hoge.find(id) した後のオブジェクトを渡しても
自動でidに変換してよしなに計らってくれますよね?

例えば、Hoge.find自身もintegerなidじゃない Hoge.firstの返り値などでも通ります。
これを自分の処理でも使いたいのですが、該当するメソッドはないものでしょうか?

ActiveRecordのfindのソースとかたどって見ているのですが、
いまいちわからんとです・・・

環境はRuby 1.8.7、Rails 2.3.4です。

395 名前:nobodyさん mailto:sage [2009/11/09(月) 21:43:53 ID:???]
>>394
まずは active_record/base.rb の AR::Base#find から find_one / find_some などを経て
def quote_value(value, column = nil)
  self.class.connection.quote(value, column)
end

これは、active_record/connection_adapters/abstract/quoting.rb の
def quote(value, column = nil)
  # records are quoted as their primary key
  return value.quoted_id if value.respond_to?(:quoted_id)
:
かな。

で、AR::Base に戻って
def quoted_id #:nodoc:
  quote_value(id, column_for_attribute(self.class.primary_key))
end


396 名前:nobodyさん mailto:sage [2009/11/09(月) 21:58:57 ID:???]
んなもんソース見るまでもなくね?

397 名前:nobodyさん mailto:sage [2009/11/09(月) 23:09:34 ID:???]
見ないでどうやってしらべんの

398 名前:nobodyさん mailto:sage [2009/11/10(火) 04:32:44 ID:???]
んなもん調べるまでもなくね

399 名前:nobodyさん mailto:sage [2009/11/10(火) 12:23:52 ID:???]
初心者スレか本スレに帰れ

400 名前:nobodyさん mailto:sage [2009/11/10(火) 15:45:57 ID:???]
>>395
無事動作を確認できました!

 Item.quote_value(1234) => "1234"
 Item..quote_value(Item.first) => "1"

みたいにいけますた。何故か文字列ですがw

find_oneやfind_someになんであるのに、見つけられなかったんだろ、と
ドキュメントを思ってよく見たら
railsのchmファイルって、メソッドのソース表示は長い行だと折り返されないで、
画面外にでてって表示されないっぽいですね orz

他の場面でもソース見ててハマりそうだ・・・。
この辺てCSSとか直したらなんとかなるんかな。

401 名前:nobodyさん mailto:sage [2009/11/10(火) 16:15:53 ID:???]
「SQL文の条件句に埋め込む数値の表現」なので、
最終的に文字列が得られるようになってるのよ。


402 名前:nobodyさん mailto:sage [2009/11/10(火) 16:23:20 ID:???]
>>401
ああ、確かにドキュメントに

> Quote strings appropriately for SQL statements

と書いてありますね。

quote_〜〜ってメソッドたくさんあるし、なんのことかと思ったら、
SQLのためのクォート処理なんですね。
勉強になりました。

privateメソッドですし、期待する機能と名前が一致しない点もアレなのですが、
とりあえずは実現できるので ActiveRecord::Base::quote_value を使ってみます。
帰り値の文字列はto_iすればいいですし。

ありがとうございました。

403 名前:nobodyさん mailto:sage [2009/11/10(火) 20:20:41 ID:???]
質問よいですか?

URLに&hoge=true
といったように、フラグや状態(日付とかでもいいです)を記載して、
しばらく、一定のページ遷移まで、&hoge=trueのGETパラメータを付加しつづけるよい方法はありませんでしょうか?

クッキーがいいかと思ったのですが、状態の違うページをいくつか開いた際に破綻してしまいます。

今は、form_forなどの引数にパラーメータを一個一個渡しています。
手動なのでけっこうミスがでてしまいます。
以下のような感じです。

view側:
<% form_tag({:action => :edit, :id => @item}.merge(hoge_params_hash)) do %>

<% end %>

コントローラー側:
helper_method hoge_params_hash
private
def hoge_params_hash
  params[:hoge] ? {:hoge=> params[:hoge]} : {}
end

例として、ブログやCMSのプレビュー用のモードというか、プレビューボタンを押した後指定のページ遷移までは
フラグ立てたまま処理する(「プレビュー中です」のような表示をしたい)というような場合や

食べた食品を記録するサイトで、ある日に記録するデータを検索窓から検索した場合、
その検索後のページ場合もそのある日を覚えておいて、記録時に使いたいといった場合です。

設計の問題なのかもしれませんが、ぜひご助言ください。



404 名前:nobodyさん mailto:sage [2009/11/10(火) 22:01:55 ID:???]
formならhiddenでいいんじゃね?


405 名前:nobodyさん mailto:sage [2009/11/10(火) 22:09:57 ID:???]
セッションに保存するのが駄目な理由が分からん。
application_controllerにチェックするメソッド定義して、各コントローラでfilterで呼ぶとか。
filterを工夫すればいいんじゃないの?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<279KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef