【Ruby】Ruby on Rail ..
[2ch|▼Menu]
560:nobodyさん
07/06/04 12:45:15 yWNAd0Hu
>>552
確かに。ありがとうございました。
しかし一つ前にやった別のアプリではクオートせずに同じことやって成功してる。
よくわかんないけど とりあえず今回は解決しました。

561:nobodyさん
07/06/04 12:50:14 yWNAd0Hu
559の間違い

562:nobodyさん
07/06/04 12:52:36
前の時は/tmp/iとかのvalidな正規表現だったからとか?


563:nobodyさん
07/06/06 00:14:22
俺が楽しければそれでいい

564:nobodyさん
07/06/07 13:35:22
Rails1.1向けに書かれた本のプログラムを実行するには、
Railsのバージョン落として Rubyのバージョンも古いソースコンパイルし直さないと
いけないのかな?

565:nobodyさん
07/06/07 13:37:56
あっ、optディレクトリとかに古い方入れればいいのか、
どのバージョンのRailsがどのバージョンのRubyに対応してるか
だけ調べるか

566:nobodyさん
07/06/07 20:36:48
着実に、zopeと同じ道を辿ってるな…

567:nobodyさん
07/06/08 11:34:09
怖いなぁ

568:nobodyさん
07/06/08 15:23:53 pyQvltMP
ActionMailerで,
recipientsやfromに続いてreply-toってヘッダーを入れたいのだけどどうすればいいんでしょ?


569:nobodyさん
07/06/08 16:52:19
>568
reply_to/reply_to_addrsっちゅーメソッドがあるやん。
使いかたはfrom/from_addrsと同じ。

570:nobodyさん
07/06/08 17:04:39 pyQvltMP
fromと同じように

class myMailer < ActionMailer
    def mail
      recipients  "xxx"
      subject   "xxx"
      from  "xxxx@xxx"
      reply_to "xxxx@xxxx"
      body "xxxx"
    end
end

のように書けばいい? 
reply_to入れたらエラーになるんすが。

571:nobodyさん
07/06/08 17:36:29
>>569
そんなメソッドあったっけ?
URLリンク(api.rubyonrails.org)
を見る限りなさそうなんだが。

headers 'Reply-To' => 'xxxx@xxxx'

はどうだ?

572:nobodyさん
07/06/08 18:31:50 pyQvltMP
>>57

解決。サンクス

573:nobodyさん
07/06/08 18:42:29
RoRを使っているfeedbringerについて

574:nobodyさん
07/06/08 20:02:18 KbDZEEwd
date_select でデフォルト値を使う方法ってありますか?
date_select のオプションで,:default => 3.days.from_now
みたいなことをやりたいのだが。。

575:nobodyさん
07/06/08 21:33:43 5H3Shl3s
すでにあるテーブルをメンテする場合どうすればいいんですか?

576:nobodyさん
07/06/08 22:53:24
>>574
フツーにモデルのフィールドに日付をいれておけば表示されるんじゃない?

>>575
リレーションにSQLのスニペットを指定して定義することはまぁ可能。
けどあきらめた方が多分いいね。思わぬところでハマることがあるから。

577:nobodyさん
07/06/08 23:57:16
まぁ set_primary_key とか、foreign_key => の明示的な指定とかで
できる範囲を超えたらあきらめたほうがいいな。



578:574
07/06/09 01:00:59 K9Grt71j
>>576

DBにレコードを初めてINSERTするときのデフォルト値を表示させたいんですよ。
だからモデル側はまだ何も無い状態。



579:nobodyさん
07/06/10 00:16:39
>>578
なにもないなら自分で埋めよう。

def new
@hoge = Hoge.new
@hoge.date = 3.days.from_now
end

<% = date_select :hoge, :date %>

モデルかデータベースでデフォルト値を定義してもいいけどね。

580:nobodyさん
07/06/11 21:13:10
Rubyに移行しようと思っているんだすが、
mod_perlのような、起動オーバーヘッド軽減できるような仕組みはありますか?

581:nobodyさん
07/06/11 21:21:11
あるんじゃね?

582:nobodyさん
07/06/11 22:43:09
>>580
FastCGI

583:nobodyさん
07/06/11 23:49:40
Rubyは本当によく出来た言語だと思う。
ただ、遅い・・・これが致命的につらい。
気長にマッタリ勉強していける性格ならRubyをお勧めするよ。
ま、ついでにApacheとかもがんばって勉強してもいいけど・・・
毒を食らわば皿までだ。

584:nobodyさん
07/06/12 00:13:08
>>583
どんな環境で実行してて遅いと感じる?

585:583
07/06/12 00:15:17
誤爆スマン

586:nobodyさん
07/06/12 07:08:24 gjdXbgZv
583じゃないけど、作者本人が遅いと認めてるところはやっぱり遅いと感じる

587:nobodyさん
07/06/12 07:09:57 gjdXbgZv
あ、作者ってRubyの作者(まつもと)のほうね

588:nobodyさん
07/06/12 11:46:34
よくある注文系フォームをRubyで作ってるんだすが、
画面遷移がどうも重い。同じ条件下のPerl製より速度が出ない。
皆さんどのへんチューニングしてます?

589:nobodyさん
07/06/12 11:54:09
全体的に遅いのは俺だってそう思うが、
その作者が遅いと認めてる部分や
その注文系フォームをどういう環境で動かしていて遅いのか
もう少し具体的に書いてくれ、でないと
ああそこはやっぱりどうしようもないね、なのか
こうやったら速くなるんじゃね、とか言い様が無いからさ

590:nobodyさん
07/06/12 12:31:57
プロセス自体が起動する早さ?はperl,ruby,pythonでかなり違いあるの?

591:nobodyさん
07/06/12 19:15:37
テストでsessionを使えないんですけど、
sessionを使うために何か準備することとかあるんでしょうか?

session[:user]の有無でログイン状態をチェックしているのですが、
ログイン処理とは関係のないコントローラ(ただしログインしていることが前提)
でテストをしたいので、とりあえず
session[:user] = @hoge
と適当なユーザオブジェクトを放り込んでやろうとしたら
Symbol as array index
というエラーが出てしまいます。
ログインを管理するコントローラの方では普通にsessionにアクセスできるのですが、
sessionの初期化かなんかの方法があるんでしょうか?
教えてくださいませ

592:nobodyさん
07/06/12 22:08:13
直接 @request.session[:user] = @hoge しないとだめだったよーな。


593:591
07/06/12 22:08:43
自己レスです
@request.session[:user]
でした


594:591
07/06/12 22:12:05
>>592
あ、ありがとうございます
なんか当たり前のトピックのような割には書いてあるサイトとか意外と少ないですね。

595:nobodyさん
07/06/12 23:44:39
rails とかふつーに重いだろw

596:nobodyさん
07/06/13 12:53:50
RailsはFastCGI必須と言える位重いな

597:nobodyさん
07/06/13 16:59:51
FastCGIとかややこしそうだね・・・
レンサバじゃインスツールしてくれないとか。

598:nobodyさん
07/06/13 17:45:28
海外のレンタルサーバの値段てちょっと信じられないほど安いんだよな
FastCGIも使えるし
なんで国内とこんなにも価格差があるんだろ

599:nobodyさん
07/06/13 19:07:27
土地が狭いからと予想

600:nobodyさん
07/06/13 19:27:32
ミミ彡  ゚̄ ̄' 〈 ゚̄ ̄ .|ミミ彡

601:nobodyさん
07/06/13 21:48:20 BE:227591633-2BP(0)
Mongrelという選択肢はないのか?
かなり早いぞ

602:nobodyさん
07/06/13 22:02:39
Tomcatが脳裏によぎった
ような気がするかもしれん

603:nobodyさん
07/06/13 23:22:35
<a href="hoge#foo">bar</a>
みたいにページ内にリンクを張りたい場合は、
link_to ではなく
<a href="<%= urf_for :action => "hoge" %>#foo">bar</a>
のようにする以外ないんでしょうか?

604:nobodyさん
07/06/13 23:39:36
url_forにanchorのオプションがあるから
<%= link_to "bar", :anchor => "foo" %>
でいけるんじゃないか試してないが

605:603
07/06/14 00:02:26
>>604
ありがとうございます。
無事に :anchor => "foo" でいけました。
助かりました。

ところで、
オンラインのドキュメントなどでは、ヘルパーメソッドに渡すオプションの項が options などと書かれていて
実際にどのようなオプションがあるのか、分からない事が多いです。
「options がどのようなオプションを受け付けるか」を知るにはソースを読む以外ないのでしょうか。
このようなリファレンス的な文書が見当たらず困っています。

606:nobodyさん
07/06/14 00:31:30
たいてい説明中に箇条書きで有効なオプションのことは書いてあると思うけど。

link_toのanchorの場合は、url_forに渡るということが本文中に書いてあるので
url_forを見ることになる。


607:603
07/06/14 00:42:03
>>606
ありがとうございます。
ActionController::Base#url_for に、各 options について書いてありました。
お恥ずかしい限りです。
もう少しちゃんとドキュメント読んでみます。

608:nobodyさん
07/06/14 22:44:13
scaffold便利そうだけど、足場という割には手を入れづらくないですかね。
項目名を日本語化したり、項目非表示にするのはスペジェネ入れないと面倒っぽい?
あと、日付要素の出力フォーマットは設定とかできるんでしょうか?

初歩的質問で申し訳ないです

609:nobodyさん
07/06/15 08:31:10
個人的にscaffoldの利点だと思っていることは、
最初にrailsを使ってみるときに、即座に動くモノが得られること。
とりあえずのアプリを作るときに手間が省けること。
くらいかな。

本格的なものを作るときにはどうせ最後には無くなるものだし、
最初から使わない。


610:nobodyさん
07/06/16 01:32:48
>>608
はげどー
おれは
/usr/local/lib/ruby/gems/1.8/gems/rails-1.2.3/lib/rails_generator/generators/components/scaffold/templates/view_*.rhtml
を改変しちったよー
でもほんとはいけないことだから、自分用のscaffold generator作る方法だれか教えて!

611:nobodyさん
07/06/16 17:49:27 fqTepViI
カメレスでスマソ。

>>439
DreamHost糞重いよ。
あと、MySQLがとにかく重い。さくらインターネット並み(それ以上か?)に重い。
お勧めしないよー。

安かろう悪かろうの代表だよ。
安くて大容量だから、別の用途で、俺は使ってるけど、Railsはさすがに無理だった。

誰か、DreamHostで、Railsをまともに動かしている人、ノウハウ書いてくれっ

俺は、高くても、Rails対応をメインにうたっているサイトをお勧めします。

612:nobodyさん
07/06/16 23:57:32
>>611
たとえばどこよ〜?

613:nobodyさん
07/06/17 00:01:01
そうね。たとえばどこさー?

614:nobodyさん
07/06/17 01:01:40
wisenot がなんかやってた気がしたけど、使ってる人いるの?


615:nobodyさん
07/06/19 02:00:29
2つ位までのアプリならmedia templeがいいかと。
(無料のRoRコンテナはメモリが64Mなので…。)

616:nobodyさん
07/06/19 09:21:55
URLリンク(www.brightbox.co.uk)
誰か試して

617:nobodyさん
07/06/19 14:45:34
ぐぐるとこんなのトップにw
URLリンク(www.techcrunch.com)

618:nobodyさん
07/06/19 15:43:25
入力フォームにベタでdate_selectタグを使おうとして泥沼にはまった。
スマートに日付とるにはどうすりゃいいんだ?

619:nobodyさん
07/06/19 20:20:58
>>617
それの日本語訳がこれ。
URLリンク(jp.techcrunch.com)

ただ海外サーバで良ければMedia Templeじゃなくても他にも
Railsをサポートしているところはいくらでもあるよ。

>>616
面白そう! Xen VPS+Ubuntu+(最適化された)Railsか。
ただ£45/monthは約1.1万円なんで高めの設定だね。

620:nobodyさん
07/06/20 14:57:24
validates_なんとかのエラーメッセージを動的に変えたいんですがどうすれば良いんでしょうか?
validates_presence_of :mail_address, :message=>hoge()
undefined method 'hoge' for User:Class
といわれてしまうんですが(もちろんhogeメソッドはあります)
:if みたいにシンボルを渡すのかなーと思ったんですが、これもダメでした。
教えてください

621:nobodyさん
07/06/21 02:40:43
def hoge
じゃなくて
def self.hoge
にしたら、いいんじゃない多分

622:nobodyさん
07/06/22 00:47:29
Ruby on Rails入門 優しいRailsの育て方は読み難い。

もう少し分かりやすく書けなかったのだろうか。
クラスの説明なんか、
動物を親として、継承して犬や猫を作るありきたりの例で
良いのに、攻撃だの技だの、変な例で説明している。
こういうのは誰もチェックしないで出版するのか。

まともなリファレンス本は無いのか。

623:nobodyさん
07/06/22 01:09:55
いや、攻撃だの技だのは新機軸で結構面白かった。
継承とか、Mix-inなんかは動物だとか、オブジェクトは「モノ」だとかいう
説明は結構解りづらい。他言語から入るひとのために、Rubyにはプリミティブ型
がないことをもっとはっきり言ってあげた方が親切だったかな。

あと、あの妙なAAはいただけなかったなあ。
AAって画面では面白く見えるんだけれど、紙面では絵に見えないんだ。

いっそ北斗の拳とかドラゴンボールで説明すれば理解しやすかったかもと
思ったり。

Rails本は5冊ぐらい買ったがアジャイル本とこれがあれば事足りる。
アジャイル本は今はもう人に勧められないからマイグレーションと
ActiveRecordまわりを追補して改訂第2版出してくれ。

624:nobodyさん
07/06/22 01:37:16
>>623

俺的には最初は黄色い本か青い電車の本がわかりやすかった。
黄色の本の dbのセットアップをrakeにするというのは
開発マシンと運用が違うときに同じ作業をすぐ実行できるという点で
面白かった。まあ、何度かやってたら思いつくんだろうけど。

でも結局 アジャイル本を日本語と 第二版の英語の2つ用意して
この2つを見比べながらってことになってしまう。
1.2対応の日本語版でないのかな。でも出たころには
railsがさらに先に進んでるんだろうな。。。

625:620
07/06/22 11:24:53
>>621
クラスメソッドでもダメでした
gettextの説明ページで
validates_presence_of :title, :message => N_("%{fn} can't be empty!")
ってかいてあったんで関数指定できるのかと思ったんですが
ダメなんですかねえ
(そもそもN_()は関数じゃない?
 gettext使ったことないのでわからないです)
とりあえずvalidateで全部自前で書きましたがわかる方教えてください

626:nobodyさん
07/06/22 12:08:32
validates_presence_ofがclass_evalされるタイミングで
存在しないもの呼んだりしちゃってるんじゃない?

627:nobodyさん
07/06/22 22:02:17
ということは validates_presence_of より前にメソッド定義すればいいのかしら?

628:nobodyさん
07/06/24 20:53:50
rails で開発する際、テーブルは先に 作るんですか?
それともテーブルは作らずに generate model Hoge して、
db/migrate/001_create_hoge.rb
に定義書いて rake migrate かけるんですか?

また、テーブルにフィールドを追加した時の作業手順とか、みなさんどうしてるのでしょうか?
ある程度決まっているものなのか、人それぞれなのか等も含めてオレはこうしてるっていうの教えて頂けると
助かります。



629:620
07/06/24 21:22:59
>>626,627
ありがとうございます。
同一ファイル内なのでメソッドの順番を変えてみましたがやっぱりダメでした。
validateの条件のifはシンボルでメソッド名を渡せるので
メッセージもそうだろうと思ってたんですが、ActiveRecordのソースを見ると
evaluate_condition(configuration[:if], record)
と評価している(?)みたいなのに対して
:messageの方はそういうのはやってませんでした
(すいません、ソース見ても意味がよくわからないんでまちがってるかも)
ということで出来なさそうです

630:nobodyさん
07/06/24 21:50:35
sessionのタイムアウトってデフォルトではどうなってるのでしょうか?
sessionの有効期限(時間)を指定する方法はありますか?
どなたか、ご教授下さい。

631:nobodyさん
07/06/25 00:04:53
class CreateCat < ActiveRecord::Migration
def self.up
create_table :cats do |t|
t.column(:name,:string)
t.column(:age,:integer)
}
end
end

のときに、
Cat.find_by_name("ミケ").alter_name #=>"ぬこ"
Cat.find_by_name("タマ").alter_name #=>"ぬこ"
Cat.new.alter_name #=>"ぬこ"
とやりたいのですが、

class Cat < ActiveRecord::Base
public
def alter_name
"ぬこ"
end
end

としてもDBのalter_name列を探しに行ってしまってうまくいきません。
何がダメなのでしょうか…。

632:nobodyさん
07/06/25 00:33:10
>>630

ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS.update(:session_expires => Time.now + 1.week)

とかでしょうか。

最初に作成されたときから1週間と、
最後にアクセスされてから1週間じゃ意味がぜんぜん違う気がするけど。

>>631

ふつうにできたんですが……


633:nobodyさん
07/06/25 01:22:36
>>628

テーブルが先に決まってたら(与えられていたら)前者
そうでなければ後者でmigrateしたほうが変更が楽なはず。

migrateに関しては 日本語のアジャイル本に載ってないのが残念だ。

634:nobodyさん
07/06/25 01:53:32
>>633
とっかかりは載ってる。存在を知ればこっちのもの。ぐぐって理解したよ。

635:nobodyさん
07/06/25 02:51:09
>>634

え、あれ…

migrateって1.1からの新機軸なので1.0にあわせた アジャイル本1版には
出てないと思ったんだけど読み方があまかったか?
ちなみに英語の2版には出てますね。
知らない俺がバカだったくらい気持ちよくなれた.

636:nobodyさん
07/06/25 04:04:58
>>635
いや、訳者が気を利かせて訳注と追補してくれているんだよ。

637:nobodyさん
07/06/25 04:06:23
ちなみに第1版第1刷で537ページから記述がある。

638:631
07/06/25 06:52:35
>>632
言われてエラーの内容を順番に辿っていったら、違う理由でDBを見に行ってました
ごめん。ありがと。

639:nobodyさん
07/06/25 16:08:42
1. find( :all, :conditions0=>...
2. find_by_sql( ["SELECT * ...
3. find_by_sql( ["SELECT column1, column2...

の三つを比較すると123の順で速くなる(3が最速)だと思ってたんだけど、
RSSを生成するテストをしてみたら実際には123の順に遅くなった。
なんでだろう?
find/find_by_sqlメソッドを単体でテストすると確かに3が一番速いんだけど。
もちろんRSS生成メソッドのfind以外は全部共通です。

640:間違い
07/06/25 16:09:34
×1. find( :all, :conditions0=>...
○1. find( :all, :conditions=>...

641:nobodyさん
07/06/25 16:10:12
>>630
無い。
ファイルのタイムスタンプを見て、自分で削除する。

642:nobodyさん
07/06/25 16:28:01
>>639
プロファイラ通してみたら?


643:639
07/06/26 00:02:16
>>642
一回のテストで1,2,3を順番に実行してたんだけど、
一回ずつバラバラにやってみたら期待通りの結果になった。
なんでだかわからないけど一安心。

644:nobodyさん
07/06/26 09:37:14
どっかのレイヤで結果がキャッシュされてたんじゃないの

645:nobodyさん
07/06/26 19:58:04
ActionMailerでメール送信時に正常に送信されたかどうかの
チェックってどうやんの?

646:nobodyさん
07/06/26 22:03:37
俺は、チェック用のアドレスにも同時に送信するようにしてる。
相手先のSMTPに正常に届けられたかどうかは、maillogをチェックするしかないな。

647:nobodyさん
07/06/27 14:50:46
Return-path のメールボックスを監視していればいいんじゃないかな。


648:nobodyさん
07/06/27 22:29:14
<%- if @hoge -%>
  ......
<%- end -%>
で前後の改行が出力される…

改行コードをCR+LFからCRにしても直らなかったから
悶々としてたけど、念のためLFだけにしたら直った。


649:nobodyさん
07/06/29 12:20:36
Rails + JRuby を.warファイルに固めてTomcatにデプロイ一発、なんてこと可能?


650:nobodyさん
07/06/29 21:29:34 cisHoRst
>>649
rake war:standalone:create
じゃなくて?

651:649
07/06/30 08:23:56
>>650
ごきげんよう。
そういうコマンドで可能なんですのね。

652:nobodyさん
07/07/01 08:28:26
すいません、一つ質問させてください。

ActionMailerでメールを送るとき、POP before SMTP認証するにはどうすればいいのでしょうか?

ActionMailer::Base.server_settingにはPOPサーバを指定する項目がないようなのですが…。

653:nobodyさん
07/07/01 14:45:55
自分で認証コード追加しちゃえば?これだけでしょ

require 'net/pop'
pop = Net::POP3.new( 'pop3.server.address', 110 )
pop.start( 'YourAccount', 'YourPassword' )
pop.finish

654:nobodyさん
07/07/01 18:15:27
>>653
標準で用意されてるようだったら、よりスマートに書けるので、お聞きした次第です。

人の作ったものなのでできればあまり手を入れたくなかったのですが…。

試しに、その方法でやってみます。

655:nobodyさん
07/07/01 18:46:17
こんなのあったよ。
URLリンク(wiki.rubyonrails.com)


656:652
07/07/02 06:08:36
>>655
おっと!まさに探してたヤツです。
早速使わせていただきました。多謝!

657:nobodyさん
07/07/02 19:27:02
初のWebアプリ開発をしようと思っている新人なのですが、
概念的な事が気になっているので教えて頂きたいのですが・・・
(Rubyに限らず、他のWebフレームワークにも当てはまる事かもしれませんが)

Railsで開発したWebアプリケーションをapacheなどから起動しようとした時、
ルーティングコンポーネントでURL解読を始めるなどの動作は、Railsがインストール
されているマシンにJavaのように実行環境(仮想マシン)が存在してそれが制御
しているのでしょうか?
それとも、プロジェクトを作成する際に、必要なRailsのライブラリ郡が
作成されるスケルトンに全てrequireか何かで組み込まれて、プロジェクトを
制御しているのでしょうか?

馬鹿な事を質問してるかも知れませんが、よくわからなくて気になったもので・・・


658:nobodyさん
07/07/02 20:45:07
後者だな、多分

659:nobodyさん
07/07/02 21:16:25
ビューが
<% form_tag("search", :method=>:get) do %>
<%= text_field_tag "query", "size" => 40 %>
<%= submit_tag("検索だよ〜んぴろぴろぴろ〜ん") %>
<% end %>

とすると、paramsの中に{”commit”=>”検索だよ〜んぴろぴろぴろ〜ん”}が渡されます。
POSTなら気にしないのですが、GETを使いたいので恥ずかしいです。
なんとかcommitを渡さない方法はないでしょうか。

660:nobodyさん
07/07/02 22:08:06
onclickにJavaScriptを書いてsubmitなinput要素をマッサツしたらできるかも?
試すのは任せた。


661:nobodyさん
07/07/02 22:14:24
「検索だよ〜んぴろぴろぴろ〜ん」ボタンの画像を作って
image_submit_tagにすればいい

662:nobodyさん
07/07/02 23:06:53
>>659
<%= submit_tag("検索だよ〜んぴろぴろぴろ〜ん", :name => nil) %>

663:659
07/07/02 23:31:38
>>660-662
<%= submit_tag("検索だよ〜") %>
が、
<input name="commit" type="submit" value="検索だよ〜" />
に展開されて、
nameとvalueのセットが送られるというhtmlの仕様に則ってこんなことになってたんですね。

htmlソース見てよく考えればよかった…。気をつけます。
ありがとう!


664:nobodyさん
07/07/03 01:07:46
>>658
え、マジで?

俺は使えればいーや!ってタイプなので深く考えた事無かったが、
なんとなく前者ジャマイカと思ってた。

そうすっと、RoRのプロジェクトはapacheからはRubyで組み上げた
一つにアプリみたいに見られてるの?
ActiveRecordみたいなRoRのライブラリ群はふつーのライブラリみたいに
Rubyのインスコディレクトリからrequireするみたいな感じで。

>>659-663
おまいら、大真面目に「ぴろぴろぴろ〜ん」って・・・・フイタ

665:nobodyさん
07/07/03 01:25:03
>>664
・まずRailsを動かすのに、Apacheが必須なわけではない。
・ApacheをRailsを一緒に使う場合は、mod_rewriteなりを普通使うと思うけど、
 この場合、内部的には単に通信をproxyしているだけ(つまり、ApacheからRailsは、"Webサーバー"として見られている。)。

666:nobodyさん
07/07/03 02:23:30
>>665
中途半端なこと書くな。無責任だぞ。

667:nobodyさん
07/07/03 02:38:13
そんなこといわれてもなぁ
Rails以前の基礎的なとこから理解してないようだし
ここにすべてを印すには余白が足りない

668:664
07/07/03 02:39:45
>>665
解説アリがd

「Webアプリケーションフレームワークと言ってるけどRailsの実体とは何ぞや?」という概念で見たら、

Railsのプロジェクト(=Rubyで作成したWebサーバアプリの基幹?)と介錯して良いんでしょうか?
プロジェクト自体はURLを解読してコントロールやアクションを呼び出すようなWebサーバの
制御部分を担ってて、Webアプリとしての中身はプロジェクトの開発環境を使ってユーザが
作る・・・みたいなイメージでOK?
(プロジェクトのディレクトリ構成も、Webアプリの仕様みたいな)

ActiveRecordのようなライブラリもRubyにパッケージとしてインスコされているもので、
人間からみたらRailsという概念もマシンからみたらRubyのプログラムに過ぎないと
考えて良いでしょうか?

669:nobodyさん
07/07/03 03:14:34
>>668
ok
「ruby script\server」で、Railsのプロジェクトを起動させるんだけど、severファイルからrequireが始まるでっかいRubyのプログラムが起動するだけだよ。

で、前の質問からちょっと、CGIの仕組みでRailsが動いている、と勘違いしているんじゃないかなと思った。違ってたらすまん。
「ruby script\server」でRailsを起動させた場合、Webサーバーを含んだRubyスクリプトが起動するんだ
なので、Railsを処理の面から見た場合
HTTPリクエストを受ける→URLを解釈する→アクションを実行する→HTMLなりを返す
までを含んだ、WebサーバーなRubyスクリプトだと見ることが出来るかな。
Webサーバーの役割をなくすこともできるけど、まあいいや。

670:nobodyさん
07/07/03 12:25:08
>669
>CGIの仕組みでRailsが動いている、と勘違いしているんじゃないかなと思った

横槍スマソ、apacheがWebサーバの場合はCGIで動く事もあるんじゃないの?
(CGIじゃ遅すぎるから、FastCGIとかmod_rubyとか使うだろうけど・・・・・)

「ruby script\server」の場合は(大抵の環境では)WebrickがWebサーバとして起動して
「DispatchServlet.dispach」を呼び出すし、

apacheをWebサーバとして使用する場合はVirtualHostとして動かしたいRailsのプロジェクトの
publicをDocumentorootとして設定する事で

 apacheのCGIからアクセス → [Railsプロジェクトの]public/dispatch.{cgi,fcgi,rb} を実行

の流れで最終的に「require "dispatcher" Dispatcher.dispatch」が呼び出されて、URL解析が
始まるんジャマイカ?

Webサーバーのアプローチが異なるだけで、

>HTTPリクエストを受ける→URLを解釈する→アクションを実行する→HTMLなりを返す
>までを含んだ、WebサーバーなRubyスクリプトだと見ることが出来るかな。

って所には同意だけど。

671:nobodyさん
07/07/03 12:51:10
>>659
<BUTTON type="submit">検索だよ〜んぴろぴろぴろ〜ん</BUTTON>

672:nobodyさん
07/07/03 15:08:21
今つくってるプロジェクトの検索ボタンを
「検索だよ〜んぴろぴろぴろ〜ん」にしてみよっと。

673:659
07/07/03 20:32:16
>>671
検証してないですが、そうやって直書きなら問題なくいけますよね
折角フォームヘルパがあるので>>662のやり方でやらせてもらいましたが。

>>672
をいw

674:nobodyさん
07/07/03 23:17:39
Rails 1.2 から LoginEngine が使えないようですが、代替のプラグインってあるのでしょうか?


675:nobodyさん
07/07/03 23:54:55
>>674
Rails 1.2.3でEngines及びLogin Engineプラグインを利用する
URLリンク(rubyist.g.hatena.ne.jp)

676:nobodyさん
07/07/04 00:07:17
>>674
acts_as_authenticatedがおすすめ。

677:nobodyさん
07/07/05 18:10:44
なぜかstart_form_tagを書くとrewriteがエラーを起こす.rhtmlファイルがある。
ファイル内に問題のフォームだけ書いてもエラー。
別のrhtmlファイルに記述して問題なく動作しているフォームをコピペしてもダメ。

とりあえずデバッグを進めたいからHTMLタグをベタ打ちにしたけど、いったい何なんだろう?

678:nobodyさん
07/07/05 18:22:07
deprecatedじゃなかったっけstart_form_tag

679:nobodyさん
07/07/05 20:19:37
すみませんが、質問です。

画像を表示するactionを作ろうとしています。
DBにデータがある場合は、send_data で、ない場合は、デフォルト画像を
send_file で送出するのですが、どちらのアクセスの場合もページキャッシュ
を生成します。

ところが、send_file の場合に、キャッシュが正しく生成されないのです。
キャッシュされて出来たファイルは、画像ファイルではなくテキストファイル
になっていて、中身は以下のものが1行ですものです。

#<Proc:0x00002aaaac5de6f8@./script/../config/../vendor/rails/actionpack/lib/act
ion_controller/streaming.rb:68>

何が原因で、どのように解決したらよいでしょうか?

680:nobodyさん
07/07/05 20:23:52
age

681:nobodyさん
07/07/05 21:34:01
send_fileの中で、
render :status => options[:status], :text => Proc.new { |response, output| ... }
でProcを渡してるんだな。これをcallするわけか。

ところで、ページキャッシュ(caches_page)は
after_filterで controller.cache_pageを呼んで、
response.bodyをそのままwriteしてるようです。

深く追ってませんがcallせずに文字列化されちゃったのは
このへんの絡みでしょうねぇ。


682:nobodyさん
07/07/05 21:36:41
HTMLを返すときはERbを通ってそこでprocが評価されるけど、
まんまwriteしちゃうとproc.to_sされちゃうとかなんとか?


683:679
07/07/05 22:47:12
皆さん、ありがとうございます。
どうやら proc.to_s が原因の、Railsのバグのようですね。
今回は、
picture_field = File.read パス名
send_data(picture_field, ...
で行こうと思います。



684:カカロフ
07/07/06 09:57:47 BTq+K64y
大道廃れて仁義有り。(老子): 改正前の教育基本法の「教育」は、「education」 = 「学び教える場(学び場)」の意味という説
URLリンク(kakalov.cocolog-nifty.com)

685:nobodyさん
07/07/07 00:57:03
fcgi 使うと
rhtmlの頭に空行がいたら駄目なんて知らなかったよ!


686:nobodyさん
07/07/08 19:42:05 HpgAFttn
ちょっと質問していいですか?
ActiveRecordの主キーid intって最大値まで使っちゃうとどうなるの?

687:nobodyさん
07/07/09 00:14:04
bigintになる

688:nobodyさん
07/07/09 00:15:30
間違えた。Bignum

というのは置いておいて、まずDBの方の制限にひっかかるんじゃないかな。つまり、DBごとに違う

689:nobodyさん
07/07/09 00:15:35
なんだってそりゃビックリンコだ

690:nobodyさん
07/07/09 18:20:31
データベースからデータを引っ張ってくるときの条件なんだけど、

・特定キーでマッチング → :conditions =>[ 'キー = ?', 条件 ]
・個数制限 →  :limit => limit

は分かったけど、「末尾のレコードから検索」はどうすればいい?
(同時に上記の条件も満たすものとする)

691:nobodyさん
07/07/09 19:02:41
orderでおまえが望む末尾からに並び替えればいい
railsというよりDBの話だな

692:nobodyさん
07/07/09 19:45:31
Rails上でGoogleMapsAPIのgeocoderが動作しないんだけどなんでだろう?
URLリンク(www.openspc2.org)
このソースをダウンロードして拡張子をただrhtmlにしただけでも動かないんだけど


693:nobodyさん
07/07/09 20:33:45 ypOM/m4j
>>688
はい。どうもです。
で例えば、MySQLのbigintだと最大値は9223372036854770000の用ですが、
idをココまで使っちゃうとどうなっちゃうのかなぁ?と。
ま、気の遠くなる様な大きさですが。

694:693
07/07/09 21:08:13
>ま、気の遠くなる様な大きさですが。
こんなの見つけた。
URLリンク(blog.livedoor.jp)
漢は黙ってbigint。私みたいな厨房は黙ってRails使えって事か。
ActiveRecordのソース眺めても何にも気にしてない気がする(←自信なし)

695:nobodyさん
07/07/09 21:21:33
おそらく先にディスクI/Oで死ぬかディスクの容量が足りなくなるので
気にしなくていいと思う。

696:693
07/07/09 21:30:05
>>695
> 気にしなくていいと思う。
pragmaticってこういう事なのかぁ…って思った。

697:sage
07/07/09 22:45:52 pNke+qhj
セッションがタイムアウトした瞬間に、
Railsから指定のメソッドが呼び出されるようにする機構はありますか?

698:nobodyさん
07/07/09 22:54:13
>>693
試してみればいいんじゃないか?
insert into items (id ) values(9223372036854770001);
とか、SQL打って。Postgresqlだと、
ERROR: integer out of range
ってエラーが出たよ

>>692
JavaScriptだけで動いてるから、Rails関係ない。エラーコンソールでも見れ

699:nobodyさん
07/07/09 23:26:27
レイアウトで
<%= stylesheet_link_tag 'default' %>
が、
<link href="/stylesheets/default.css?(数字たくさん)" media="screen" rel="Stylesheet" type="text/css" />
という出力になります。
css?のあとの数字たくさんは何なのでしょうか。
development環境だけかと言えばそんなことはないし…。
しばらく前から気になって夜も寝られます。

700:nobodyさん
07/07/09 23:40:41
Version

701:nobodyさん
07/07/09 23:50:35
>>699
ブラウザがCSSをキャッシュしないよう
強制的にリロードさせるようにするためじゃね?


702:nobodyさん
07/07/10 00:31:25
キャッシュされるのを抑制するために問い合わせ文字列をつけている。


703:nobodyさん
07/07/10 00:32:10
つーか寝られるなら気にするな。



704:699
07/07/10 05:56:31
>>700-703
優しい人ばっかりだな!
キャッシュ抑制という発想はなかったわ。
ありがとね。


705:692
07/07/10 12:26:12
理由がやっとわかった
GeocoderはGoogleMapsAPIの認証キーを厳密にチェックしてて、
Railsをローカルで動かすと登録したURLと一致しないということではじかれてた
地図は適当なキーでちゃんと表示されてたのでそこまで気にしてなかったなあ

706:nobodyさん
07/07/12 17:28:19 BE:809212984-2BP(0)
RubyConfで出た統合開発環境って情報出ないね
EcripsベースってRadRailsとどう変わるんだろ?
最近、仕事で色々エディタ使ってるけど、楽しいものがないんだ。

書いてて楽しいと思えるものは、みなさんだと何でしょ?
私はWinだとEmEditer
LinuxだとEmacsです

707:nobodyさん
07/07/12 17:31:15
vim

708:nobodyさん
07/07/12 18:07:55
国際化するにはどうするのがよいのでしょうか?

709:nobodyさん
07/07/12 18:20:16
gettextで

710:nobodyさん
07/07/12 18:37:57
magic_model_generator というのをgemで見つけて試してみたのですがエラーになってしまいます。
使ったことある人いますか?

$ ./script/generate magic_model
undefined method `table_name' for Transaction:Module
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
....(省略)

$ rails -v
Rails 1.2.3


711:nobodyさん
07/07/12 22:21:24
Netbeans の Ruby版

712:nobodyさん
07/07/12 23:19:25
komodo edit使ってる
komodo ideほしいけど金無し

713:nobodyさん
07/07/15 01:05:03 gojNHc9A
Functional Test(たとえばuser_controller_tes.rb)でsession[:user_id]とかできないんだけどどうしたらいい?
sessionはHashじゃなくてArrayだって言われてしまう。
Functional Testではどうすればsession上の変数を扱えるの?

714:nobodyさん
07/07/15 01:10:41
小さいプロジェクトなのでapplication.rhtmlにヘッダ、フッタを書いて済ませていたのですが
rssを付ける段になってコントローラに
layout nil, :only => :rss
と書いたところ、同じコントローラの別アクションもレイアウトがかからなくなってしまいました。
逆に
layout "application", :except => :rss
と書けば大丈夫なのですが、この辺の仕組みが分かる方おいでます?


715:nobodyさん
07/07/15 01:28:18
モデルにバリデータが着いちゃってるけど、
この画面の段階ではいらないけど、
このときには必須になるみたいなケースな場合どうするの?

716:nobodyさん
07/07/15 12:14:32
>>713
一度何かリクエスト/レスポンスのやりとりをしないとセッションが出来ないかも。

>>714
コントローラの属性テーブルに "layout" => 名前 というペアを挿入する形なので、
名前がnilだと親コントローラに探しに行ってしまうんじゃないかしらん。

>>715
validates_xxx :on => :update とかでは対応できないのなら、
自分で validate メソッドを書く。
「xxxがnilでないときのみyyyもnilでないこと」みたいなのも確認しほうだい。




717:nobodyさん
07/07/15 12:18:19
714を読み間違ったみたい。忘れて。



718:nobodyさん
07/07/15 19:14:52
>>713 は、@request.session て話では

719:nobodyさん
07/07/15 20:42:23
>>716
ありがと!

720:nobodyさん
07/07/19 01:37:07
1.8.5と1.8.6の互換性に触れると「Railsが悪い」と言うくせに、
Rubyって何に使えるのと聴くと「Railsが凄い」と言う…

721:nobodyさん
07/07/19 15:05:24
それだけ影響力があるってことだろう

722:nobodyさん
07/07/19 18:50:40
レコードを更新したいけど、updateo_onフィールドを一時的に更新させないようにする方法は
ありますか?


723:nobodyさん
07/07/19 18:51:55
ActiveRecord::Base.record_timestamps = false
ですね。はずかしすぐる・・・

724:nobodyさん
07/07/19 21:58:27 oZlZzBRy
DelWiki - Senro
URLリンク(delwiki.info)

> Delphi と Ruby on Rails と SQLite の組み合わせで簡単に
> ローカルデータベースアプリケーションを作るプロジェクトです。

DelphiとRailsの夢のコラボ



725:nobodyさん
07/07/19 22:06:44
Delphiを今使うメリットってなんですの?

726:nobodyさん
07/07/20 01:44:41
CakePHPもある今、遅いRailsを使うメリットってなんですの?

727:nobodyさん
07/07/20 02:22:36
CodeIgniterもある今、遅いCakePHPを使うメリットってなんですの?

728:nobodyさん
07/07/20 02:28:01
紙とえんぴつがあるのに、コンピュータを使うメリットってなんですの?

729:nobodyさん
07/07/20 06:10:33
紙とえんぴつじゃ遅いからじゃないかな


730:nobodyさん
07/07/20 09:37:02
最近えんぴつが品薄だから

731:nobodyさん
07/07/20 09:58:34
えんぴつは使うのが難しいからじゃないかな

732:nobodyさん
07/07/20 11:18:05
えんぴつをナイフできれいに削れるヤツは少ないだろ

733:nobodyさん
07/07/20 15:02:05
>>728
君が今、周りを見渡して、鉛筆とPCとどっちが先に見つかる?

734:nobodyさん
07/07/20 15:32:21
>>733
それ無茶だろwwww

735:mod_fastcgi
07/07/20 19:54:32 DvId2R7o
apache上で動かすと死にそうなぐらい遅いのですが
対策方法ってあるのでしょうか?

環境は
ruby 1.8.6
apache 1.3
windowsXP
です。。。

InstantRailsでインストールしました。

OSを変えるべきなんでしょうか?


736:nobodyさん
07/07/20 20:18:53
webrickかmongrelでやればいいんじゃね
(fastじゃない)cgiでrailsはどうやっても重過ぎて使えないよ無理

737:nobodyさん
07/07/20 22:11:09
mongrelお勧め。
まぁRailsのアプリだけならね。

lighttpdも合わせて使うと良いと思われ

738:nobodyさん
07/07/20 22:15:19
うちはapache(mod_proxy)とmongrel(railsアプリはこれで動かす)の連携。


739:nobodyさん
07/07/20 23:16:36
実際にrailsアプリを公開しようとすると
実質(apache+)lighttpd + fastcgiか
apache + mongrelってことなんだろうけど、
この環境が無料あるいはワンコインレベルの共有サーバで
使えるようになる日はくるのかね

xreaとかでもfastcgiはリソース使用量が高いっていう理由で
サポートされてないんだけど、それは多分fastcgiが
プロセスを死なせず常駐させるような仕組みだからだと思うんだけど
それが速い理由だからfastcgiは無理っぽいし
mongrelだとmongrel自身がhttpdだから
それぞれのユーザがデーモンを常駐させる必要があるし、
結局そういう流れでrailsに特化して最適化したサーバが
必要で国内にもいくつかあるみたいだけど
やっぱりワンコインみたいな気軽に借りれそうなところは無い

ほんと後はこの壁だけだと思うんだよ
PHPのような普及に至るためには
railsももちろんそうだけど、
webでrubyを気軽に使える世界になって欲しいんだよな
無料サーバでもすぐに使えますみたいな
rubyって楽に素直に書けるから

長文になってしまった失礼

740:nobodyさん
07/07/20 23:29:17
Rails環境を整えることでビジネスチャンスに繋がるということを
認識できるレンタルサーバ業者がどれだけ出てくるかという事だろね。
ロリポもはやくRails対応してー。

741:nobodyさん
07/07/21 07:25:24
mod_ruby が安定したり、phpみたいにセーフティーモードがあれば組み込むんだけど

742:nobodyさん
07/07/21 07:28:09
しかし、Railsを使おうと思ったら現状デーモンを常駐させないと使い物にならんしねぇ。
俺がレンタル鯖屋さんだったら、1ユーザ・1デーモンのサービス開始しようとは思わないなぁ。
むちゃくちゃリスキーな訳だし

743:nobodyさん
07/07/21 10:04:41
vpsでいいじゃん。rapidvpsとかなら1000円ちょいだろ?

744:nobodyさん
07/07/21 15:20:18
> 俺がレンタル鯖屋さんだったら、1ユーザ・1デーモンのサービス開始しようとは思わないなぁ。

1個で良いの?www

745:nobodyさん
07/07/21 20:04:31 UNPvyq3t
URLリンク(jp.rubyist.net)
を参考に、 connections\native_mysql\connection.rb を修正、
$ ruby -I "connections/native_mysql" base_test.rb
を行ったのですが、以下の部分(base.rb:1031)でのエラーが多数でます。

ActiveRecord::RecordNotFound: Couldn't find Topic with ID=1
./../lib/active_record/base.rb:1031:in `find_one'
./../lib/active_record/base.rb:1014:in `find_from_ids'
./../lib/active_record/base.rb:419:in `find'

base.rb の def find_one(id, options) の部分を見てみたのですが、いまいちよく分かりません。どう訂正すればいいのでしょうか。

環境は、win xp, xampp 1.6.2 で、One-Click Ruby Installer 1.8.6-25 ( 1.8.5-24 でも同じエラー ), Rails 1.2.3 です。

746:nobodyさん
07/07/21 20:22:34
テーブルは作った?

747:745
07/07/21 21:05:02 UNPvyq3t
> 746
ありがとうございます。URLリンク(jp.rubyist.net)で、
$ mysql -u root activerecord_unittest < test/fixtures/db_definitions/mysql.sql
$ mysql -u root activerecord_unittest2 < test/fixtures/db_definitions/mysql2.sql
の部分ですよね?やりました。

あと、activerecord_unittest.topics.author_name で
\ r '
\n "
という項があるのですが、エラーと関係ありますかね?

748:nobodyさん
07/07/21 22:43:56
エラーメッセージはfind()でidから1件取得で
失敗した時のだから単純にfixturesが入ってないとか
テーブルができてないとかだと思ったんだけど、、、

テスト結果がほぼ全コケなら
そういう感じの単純な理由だと思うけど
中途半端だとなんとも
railsのテスト周りはwindows環境でもちゃんとチェックされてんのかなあ

749:745
07/07/21 23:04:27 UNPvyq3t
> 748
レスありがとうございます。

# base_test.rb テスト結果

手許のxp、二台で試してみたのですが、同じ結果でした。

> 137 tests, 318 assertions, 9 failures, 39 errors

errorについては、すべて base.rb `find_one'がらみです。

とりあえずrailsのバージョン変えて試してみます。


750:nobodyさん
07/07/21 23:11:28
とりあえずスタックトレースが出るんだからどこで何が悪いのかはわかるんじゃないの?


751:nobodyさん
07/07/22 11:58:13
そのテストだけでfixturesを指定し忘れてるとか。
testrbで通ってrakeで通らないとか、その辺は大抵それが原因な気がする

find_by_sqlで"SELET * FROM table_name WHERE id = 1"してやっぱりヒットしないようなら
RailsとかARの問題じゃなく、アプリかテストの問題だよ。
(find(id)でAR::RecordNotFoundが挙がるのは仕様)

752:nobodyさん
07/07/23 03:39:14
test/functional のテストコードで、
RESTっぽいコントローラーのテストをしたいんだけど、
query string の内容を直接指定してgetとかpostとかを発行する
のってどうすればいいの?

つまり、いわゆるparam=value形式じゃなくて、request.raw_postで
取れる値を直接流し込みたいんだけど


753:nobodyさん
07/07/23 11:22:15
TestRequestにenvセットしたら取れた

@request.env['RAW_POST_DATA'] = 'foo'

754:nobodyさん
07/07/23 11:46:41
>>753
d

755:nobodyさん
07/07/23 17:33:20 Y5zBlasD
JOINしたテーブルのデータを列挙するモジュール作っていますが。
A テーブルに B テーブルを JOIN した場合
どのように受け渡して表示すればうまくいくでしょうか?




756:nobodyさん
07/07/23 19:43:24
普通にfindで :join で連結するテーブル指定して
:select で表示したいcolumn指定すれば取れると思うが

757:755
07/07/24 11:56:14 BEyPYoNf
>>756
普通にJOINしたカラムをモデル.カラム で取得できました。
ありがとうございました。

RailsでPDFで帳票出力したいんですが、皆さんは
帳票ライブラリはナニを使ってますか?


758:nobodyさん
07/07/24 14:46:34
初めて英語で技術書読んでるけど
アジャイルRailsの本読みやすい英語だね。

759:nobodyさん
07/07/26 01:17:08
引数付きのURL、例えばURLリンク(example.com)
をキャッシュする方法はありますか?
普通にやったら引数は保存されませんでした。

760:745
07/07/26 12:12:41 DIyctI7v
>750,751
ありがとうございます。もうちょっと色々と勉強してみます。

761:nobodyさん
07/07/26 21:20:21
>>759
ページキャッシュかな?

ページキャッシュはrailsアプリを通らず、完全にHTTPサーバレベルで
処理されるので、Rails側では何もできないと思う。
apacheのmod_rewriteで工夫できそうな気もするけど。


762:nobodyさん
07/07/27 01:30:38
>>761
そうでしたか・・・。ありがとうございます。

763:nobodyさん
07/07/27 11:22:56
便乗質問ですが、そうするとページネータで作る二ページ目以降はキャッシュされないってことでしょうか?

764:nobodyさん
07/07/27 13:17:36
スレチかもしれないけど質問。

Aptana IDEを使ってみようと思ってインストしたんだが、
これってDB指定でgenerate出来ないのかな?
デフォではMySqlになっているんだが、俺はSQLite3でやりたいんだが……

まぁ自分でコマンドうってから、プロジェクトをインポートすればいいんだが、
それだとIDEの意味ないだろ、と。

誰かこの辺りについての情報お持ちの方いたら教えてください。

765:nobodyさん
07/07/27 22:01:20
>>763
ページがURLの一部になるような規則をroutes.rbに書けばいい。


766:nobodyさん
07/07/27 22:39:29
よっぽどページ数とアイテム集合が変動しない代物でもない限り、
フラグメントキャッシュでやるほうが適しているかもしれんね。


767:nobodyさん
07/07/27 23:38:50
>>765
そっか、?page=は固定だからrouteで指定できますね

768:nobodyさん
07/07/28 07:24:43 AhK16ONh
viewの中で、そのviewのcontroller名とaction名を取得したいんですが、どうすればいいでしょうか?


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4331日前に更新/226 KB
担当:undef