【Ruby】Ruby on Rails Part8

このエントリーをはてなブックマークに追加
1nobodyさん
■前 Ruby on Rails Part7
http://pc11.2ch.net/test/read.cgi/php/1241100447/

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

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

■参考スレ(プログラム板)
Rubyについて Part 37
http://pc12.2ch.net/test/read.cgi/tech/1251029267/
Ruby 初心者スレッド Part 30
http://pc12.2ch.net/test/read.cgi/tech/1249687283/
2nobodyさん:2009/09/13(日) 20:50:59 ID:???
前スレ999は何が言いたかったのだろう。
3nobodyさん:2009/09/13(日) 20:51:01 ID:???
O2
41:2009/09/13(日) 20:53:14 ID:???
■変遷
【Agile】Ruby on rails相談所【DRY】
http://pc8.2ch.net/test/read.cgi/php/1118663500/
【Agile】Ruby on rails相談所 part2【DRY】
http://pc10.2ch.net/test/read.cgi/php/1151254378/
【Ruby】Ruby on Rails Part3
http://pc11.2ch.net/test/read.cgi/php/1170760209/

↓ム板に

Ruby on Rails
http://pc11.2ch.net/test/read.cgi/tech/1191381506/



Ruby on Rails のスレ が
http://pc11.2ch.net/test/read.cgi/php/1207425569/

【Ruby】Ruby on Rails Part6
http://pc11.2ch.net/test/read.cgi/php/1224838013/

【Ruby】Ruby on Rails Part7
http://pc11.2ch.net/test/read.cgi/php/1241100447/

【Ruby】Ruby on Rails Part8
http://pc11.2ch.net/test/read.cgi/php/1252842574/
(イマココ)
51:2009/09/13(日) 20:55:27 ID:???
立てました。
ところで >>4 の変遷って、今後もいるのかな?

次スレを、いつ誰が立てることになるのかはわからないけど、
ちょっと疑問に思ったので今のうちに議論しておいたほうがいいかなと思いました。
6nobodyさん:2009/09/13(日) 21:03:45 ID:???
>>1
乙であります。
7nobodyさん:2009/09/13(日) 21:09:03 ID:???
前のスレで
rdocのview sourceが素晴らしい
と言ってる方がいましたが、これは何のことでしょうか?
8nobodyさん:2009/09/13(日) 21:09:51 ID:???
>>5
> ところで >>4 の変遷って、今後もいるのかな?

個人的には前スレだけで十分
代わりに定番プラグイン一覧みたいなのが欲しいところ

> 次スレを、いつ誰が立てることになるのかはわからないけど、
> ちょっと疑問に思ったので今のうちに議論しておいたほうがいいかなと思いました。

>>950 が立てること、とかでいいじゃないか。
そういうルールもテンプレに含めておくべきだな。
9nobodyさん:2009/09/13(日) 21:21:19 ID:???
自分も前スレだけで十分。
次スレは>>950が立てればいいと思う。
10nobodyさん:2009/09/13(日) 21:24:33 ID:???
>>7
ドキュメントにソースがついているところじゃないかな?

俺はRailsのchmしか使ってないけど、メソッドのところ見ると、該当ソースが見れる。
これがえらく便利。

わがまま言えば、該当ソース内で他のメソッドクリックするとそのソースも見れる、みたいなのだともっといいんだろうけどねえ…。
chmジャム陸際な
11nobodyさん:2009/09/13(日) 22:18:58 ID:???
980くらいでも大丈夫
12nobodyさん:2009/09/14(月) 00:54:13 ID:???
名前付きルートにモデルインスタンスを渡すソースをよく見ます。

@entry = Entry.new(params[:entry])
redirect_to entry_url(@entry)

みたいな感じです。
ネットなどで調べると、名前付きルートentry_urlの引数はidしか渡せないようなのですが、
モデルインスタンスが渡された場合はインスタンスからidを取り出すなどの特別扱いをされるのでしょうか?
135:2009/09/14(月) 02:08:24 ID:???
>>8-9
わかりました。
14nobodyさん:2009/09/14(月) 05:36:47 ID:???
>>12
> ネットなどで調べると、名前付きルートentry_urlの引数はidしか渡せない
ハッシュも渡せるYO!!
entry_url(:id => 10)

こういう、引数の色んな渡し方が可能なメソッドは大抵
is_a? とか respond_to? を使って実行時型チェックをやってるので、
その一環としてモデルオブジェクトからは id を取得するようになっているのだろう。

ソース追っかけたわけではないので推測だけど、、、
15nobodyさん:2009/09/14(月) 09:54:44 ID:???
>>7
このやり方ってどうするんですか?

16nobodyさん:2009/09/14(月) 10:30:34 ID:???
>>12
url_forのドキュメントとソースが参考になるのではないかと
17nobodyさん:2009/09/14(月) 10:39:09 ID:???
>>15
rdoc --inline-source(-S)
18nobodyさん:2009/09/14(月) 10:44:29 ID:???
>>15
>>1 にあるRailsの公式APIリファレンスや github でホスティングされている
gem の rdoc なんかはそうなっているから、そっちを参照したら?

ローカルのgemや自作ライブラリのドキュメントを生成するなら
ひとまず rdoc の使い方を覚え、gem server などでググる必要があると思われる。

でも自分はあんまりローカルgemのrdocは見ないなあ、大抵guthubの方を見る
19nobodyさん:2009/09/14(月) 18:24:50 ID:???
railsだとrake doc:railsってコマンドでもドキュメント作れるけど、このコマンドはみんな使ってないの?
20nobodyさん:2009/09/14(月) 19:19:32 ID:???
どんなコマンドがあるのかわからん
コマンド一覧表作ってくれんかな
21nobodyさん:2009/09/14(月) 20:11:48 ID:???
>>20
rake --tasks
22nobodyさん:2009/09/14(月) 20:16:10 ID:???
zsh だと
rake <Tab> でコメント付きのタスク一覧を補完候補として表示してくれたりする
23nobodyさん:2009/09/14(月) 20:43:56 ID:???
DBの設計の質問なのですがrailsが絡むのでここで質問させてください。
webシステムでユーザーのテーブルを作りたいのですが、memberテーブル(一般ユーザー)とadminテーブル(管理者ユーザー)に分けて作ろうと思っています。
ただし名前やパスワードなど共通するカラムはuserテーブルに切り出します。

この時、userテーブルとmember&adminテーブルの関連はどのように作るべきでしょうか?
以下のように@とAの二つ考えてみたのですが、どっちが良いのか分かりません。

@memberテーブルとadminテーブルそれぞれにuser_idカラムを作り、memberとadminからuserを参照する。
Auserテーブルにuser_id(memberテーブルのidまたはadminテーブルのidを格納する)とuser_type("member"または"admin"を格納する)を作り、userからmemberとadminを参照する。

3つのテーブルの関係を考えるとuserがmemberとadminの親になるのが自然なので@の方が良いのかなと思うのですが、
Aの方法だと、railsのポリモーフィック関連で3つのテーブルの関連付けができるため便利です。(@だとuserとmember、userとadminを別々に関連付けするのでmemberとadminに関連性が無くなる)
どっちのやり方が適切でしょうか?
24nobodyさん:2009/09/14(月) 21:23:58 ID:???
>>23
個人的には polymorphic associationが好み。

あまり美しくないが、一応選択肢として:
Rails的にはSTI(Single Table Inheritance)がお手軽。
25nobodyさん:2009/09/14(月) 22:06:40 ID:???
3つ目の案として、UserとRoleの2つのモデルで一般ユーザ、管理者を表現するのはどうかな。
rolesテーブルには一般ユーザと管理者のレコードを入れて権限マスタとして使う。
で、usersテーブルにrole_idを持たせる。


2625:2009/09/14(月) 22:08:23 ID:???
あ、失礼。
>>23のAと同じだった。


2723:2009/09/14(月) 22:13:49 ID:???
>>24
やはりrailsの場合polymorphicが良いのですね。
Single Table Inheritanceは知りませんでした。少し調べてみたら@でやる場合はすごく便利そう…validationもuserモデルに書くだけで良くなるからむしろAより綺麗かも?
polymorphicかSTIかでもうちょっと考えてみます。
ありがとうございました。
2823:2009/09/14(月) 22:16:12 ID:???
>>25
ありがとうございます。
Aとは違うような…3つテーブルを作らないということですよね?
29nobodyさん:2009/09/14(月) 22:18:10 ID:???
Railsとか関係なしにAは駄目だろ
memberとadminを区別しないで扱いたい時とか破綻する
3023:2009/09/14(月) 22:26:53 ID:???
破綻しますか?Aの場合でもuserからmemberとadminを辿れるから問題無いと思うけど。
31nobodyさん:2009/09/14(月) 22:44:58 ID:0t6wUMUL
コントローラをあえてRESTfulにしたくない場合(フォーム→確認画面→完了画面、のようなものを考えています)、どのようにしたらよいでしょう?
config/routes.rb から該当コントローラの map.resources 行を削ると、以下のエラーになってしまいます。

 Showing app/views/hoges/fuga.html.erb where line #3 raised:
  undefined method `hoges_path' for #<ActionView::Base:0xb755f00c>
 Extracted source (around line #3):
  <% form_for(@hoge) do |f| %>

なお該当ビューで hoges_path メソッドを使用している箇所はありません。
32nobodyさん:2009/09/14(月) 23:03:43 ID:???
>>31
form_forでエラーになっているのであれば、form_tag使えばいいんじゃない?

<% form_tag(:action => アクション名) do %>
 <%= text_field(:hoge, :name) %>
以下略
<% end %>
33nobodyさん:2009/09/15(火) 00:21:30 ID:???
>>23
わざわざ二つに分ける意味がわからん
なぜ二つに分けようと考えたんだ?
34nobodyさん:2009/09/15(火) 00:22:25 ID:???
メンバーから管理者に変更するときとか面倒そうだな
35nobodyさん:2009/09/15(火) 00:24:43 ID:???
userテーブルは要らないな。memberテーブルとadminテーブルだけあれば済むこと。
3623:2009/09/15(火) 02:04:52 ID:???
何度もすいません。
memberテーブルとadminテーブルに分けたのは、一般ユーザーと管理者ユーザーで必要なカラムが違うからです。
userテーブルを作ったのは、ログイン認証の時に一つのテーブルを見るだけで済むようにするためです。
restful_authenticationなどのプラグインなどを使う場合ユーザー認証のテーブルが二つあるとやっかいだと思いました。

>>34さんが言うように変更が面倒くさそうなので、userテーブルだけ作ってmember固有のカラムもadmin固有のカラムもuserに突っ込むことも考えましたが、
そうしてしまうと今度はmemberとadmin以外の種類のuserが必要になった時に大変だと思いました。
自分なりに考えた結果、userとmemberとadminの3つのテーブルを用意するのがいいと判断しましたが、一般的なwebシステムではこういう分け方はあまりやらないのでしょうか。
37nobodyさん:2009/09/15(火) 03:06:36 ID:AVq3Mqvr
この流れの中、恥を忍んで聞くのですが、個人で作ってるシステムで、
「管理者=自分」と「その他ユーザー」という区別しかない場合、
特定のID(例えば 1)を持つユーザーが管理者、とハードコードしてしまうのって
どうなんですかね?

role を導入しようかと思ったんですが、
管理者か否かの二値を区別するのに roleテーブルも大げさかなと
38nobodyさん:2009/09/15(火) 03:43:36 ID:???
accessor isadmin
39nobodyさん:2009/09/15(火) 09:01:10 ID:Gt2owe1a
>>37
role導入でいいと思う。今は2つの値しか扱わないとしても、ハードコーディングするより全然いい。
4037:2009/09/15(火) 12:30:53 ID:???
>>39
ありがとうございます。
今後のことも考えて role を導入してみます。
41nobodyさん:2009/09/15(火) 18:06:59 ID:???
roleってなんだ???
42nobodyさん:2009/09/15(火) 18:44:33 ID:???
堂島role
43nobodyさん:2009/09/15(火) 18:57:55 ID:???
質問があります。

バリデーションエラー時に、エラー箇所を赤く表示したいのですが、微妙に変な挙動になります。
<div class="fieldWithErros">が挿入されるため、場合によって画面が崩れてしまいます。
そのため下記サイトのように、<span ...>に置き換えるようにしたのですが、

そうすると、textareaのような要素が何故か、背景が赤くならずに下だけが赤くなります。
多分、<span>がinlineで<textarea>がblockなせいだとは思うのですが・・・
うまく解決する方法はないでしょうか?

ちなみに、下記サイトのcssを追加した場合は、赤い背景のほかに赤い枠がとびでて不恰好になってしまいます・・・。

.fieldWithErrosがtextareaだけ変な件, ファイルアップロードのvalidates, option_groups_from_collection_for_select 使ったらfieldWithErrorsが出なくな.. - capsctrldays(2006-04-14)
http://capsctrl.que.jp/kdmsnr/diary/20060414.html
44nobodyさん:2009/09/15(火) 20:23:27 ID:Gt2owe1a
>>43
divのままでも

div.fieldWithErrors {
display: inline;

}

こうすれば崩れなくなると思う。
45nobodyさん:2009/09/15(火) 20:28:15 ID:???
capistranoの質問があります。
先日より、本番鯖でcapistranoでのデプロイがエラーはくようになり困っております。
どのような原因が考えられますでしょうか?
テスト鯖へのデプロイはほぼ同じ設定で問題なくできています。

環境:
デプロイ先(テスト鯖staging、本番鯖production)
・Ubuntu 8.04 LTS ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
デプロイ元: Windows XP SP3 Ruby 1.8.7
・ruby 1.8.7 (2008-06-20 patchlevel 22) [i386-mswin32]
・Capistrano v2.5.5

以下、エラー内容
> cap production deploy:cold
  * executing `production'
    triggering start callbacks for `deploy:cold'
  * executing `multistage:ensure'
  * executing `deploy:cold'
  * executing `deploy:update'
    triggering before callbacks for `deploy:update'
  * executing `gems:install'
  * executing "cd /home/www/my_project/current && rake gems:install RAILS_ENV=production"
    servers: ["my.example.com"]
    [my.example.com] executing command
** [out :: my.example.com] (in /home/www/my_project/releases/20090730101805)
    command finished
** transaction: start
  * executing `deploy:update_code'
    executing locally: "svn info svn+ssh://my_repogitory/my_project/trunk  -rHEAD"
  * getting (via checkout) revision 102 to C:/DOCUME~1/ore/LOCALS~1/Temp/20090915103237
    executing locally: svn checkout -q -r102 svn+ssh://my_repogitory/my_project/trunk C:\DOCUME~1\ore\LOCALS~1\Temp\20090915103237
    compressing C:/DOCUME~1/ore/LOCALS~1/Temp/20090915103237 to C:/DOCUME~1/or/LOCALS~1/Temp/20090915103237.tar.gz
46nobodyさん:2009/09/15(火) 20:31:02 ID:???
  executing locally: tar czf 20090915103237.tar.gz 20090915103237
  servers: ["my.example.com"]
** sftp upload C:/DOCUME~1/ore/LOCALS~1/Temp/20090915103237.tar.gz -> /tmp/20090915103237.tar.gz
*** [deploy:update_code] rolling back
 * executing "rm -rf /home/www/my_project/releases/20090915103237; true"
  servers: ["my.example.com"]
** [deploy:update_code] exception while rolling back: IOError, closed stream
D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/transfer.rb:156:in `[]=': undefined method `[]=' for nil:NilClass (NoMethodError)
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/transfer.rb:207:in `handle_error'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/transfer.rb:48:in `process!'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/transfer.rb:43:in `loop'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/transfer.rb:43:in `process!'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/transfer.rb:11:in `process'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/actions/file_transfer.rb:40:in `transfer'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/connections.rb:170:in `execute_on_servers'
    from D:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `each_slice'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/connections.rb:158:in `each'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/connections.rb:158:in `each_slice'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/connections.rb:158:in `execute_on_servers'
47nobodyさん:2009/09/15(火) 20:34:49 ID:???
長すぎて容量制限にひっかかる(泣

    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/actions/file_transfer.rb:38:in `transfer'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/actions/file_transfer.rb:26:in `upload'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/recipes/deploy/strategy/base.rb:43:in `send'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/recipes/deploy/strategy/base.rb:43:in `method_missing'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/recipes/deploy/strategy/copy.rb:99:in `deploy!'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/recipes/deploy.rb:204:in `load'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:128:in `instance_eval'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:128:in `invoke_task_directly_without_callbacks'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/callbacks.rb:27:in `invoke_task_directly'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:81:in `execute_task'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/namespaces.rb:186:in `send'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/namespaces.rb:186:in `method_missing'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/namespaces.rb:104:in `update_code'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/recipes/deploy.rb:185:in `load'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:48:in `transaction'
48nobodyさん:2009/09/15(火) 20:36:51 ID:???
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/namespaces.rb:186:in `send'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/namespaces.rb:186:in `method_missing'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/recipes/deploy.rb:184:in `load'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:128:in `instance_eval'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:128:in `invoke_task_directly_withou
t_callbacks'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/callbacks.rb:27:in `invoke_task_directly'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:81:in `execute_task'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/namespaces.rb:186:in `send'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/namespaces.rb:186:in `method_missing'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/namespaces.rb:104:in `update'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/recipes/deploy.rb:464:in `load'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:128:in `instance_eval'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:128:in `invoke_task_directly_without_callbacks'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/callbacks.rb:27:in `invoke_task_directly'
49nobodyさん:2009/09/15(火) 20:37:35 ID:???
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:81:in `execute_task'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/configuration/execution.rb:93:in `find_and_execute_task'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/cli/execute.rb:45:in `execute_requested_actions_without_help'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/cli/execute.rb:44:in `each'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/cli/execute.rb:44:in `execute_requested_actions_without_help'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/cli/help.rb:19:in `execute_requested_actions'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/cli/execute.rb:33:in `execute!'
    from D:/ruby/(略)/capistrano-2.5.5/lib/capistrano/cli/execute.rb:14:in `execute'
    from D:/ruby/(略)/capistrano-2.5.5/bin/cap:4
    from D:/ruby/bin/cap:19:in `load'
    from D:/ruby/bin/cap:19

これでエラーメッセージ終わりです。
ご助言いただけると幸いです。
50nobodyさん:2009/09/15(火) 20:41:44 ID:???
>>44
やってみたのですが、<span>のときと同じように、
背景がうまく赤くならずに、textareaのときは下の方だけが赤くなったりしてしまいます・・・。
51nobodyさん:2009/09/15(火) 20:50:52 ID:Gt2owe1a
>>50
とりあえず、デザインの崩れは解決したんだよね?
あとはcssを調整すればなんとかなるはず。

.fieldWithErrors textarea {

background: #ff0000;
}

で、いけないかな?
52nobodyさん:2009/09/15(火) 21:03:14 ID:???
>>46
SFTPTransferWrapperの中でコケてるようだけど、うーん……
公開鍵の有無とかパスワード認証の許可状況とか?

53nobodyさん:2009/09/15(火) 21:28:04 ID:???
突然ならディレクトリの容量が足りないんじゃなくて?
5445:2009/09/16(水) 11:14:19 ID:???
ありがとうございます。

書き忘れましたが、本番鯖の設定とテスト鯖の設定の切り替えにcapistrano-extというgemを使っています。

>>52
こちらでもソースを見ていたのですが、やっぱり、SFTPがおかしいのですかね…。
サーバー側のsshd設定何か弄ったかな…うーん。

本番サーバーにwinscpのSFTPで同じユーザーで適当な10MBくらいのファイルを何度か転送してみましたが、
問題ない感じでした。
capistrano側の設定なのかな…
ほぼ同じcapistranoの設定(ドメインとssh接続portのみ異なる)でテスト環境では問題ない点が?です。

sshは公開鍵を使っていますので、鍵の設定も見直してみます。pageantを併用していたはず

>>53
昨日、サーバーでdfで確認してみましたが、転送先のディレクトリ(/home/www/my_project)含むパーティション、
及びアーカイブ一時展開先の /tmpともに問題なく空いていました。

しかし、念のためもう一度確認してみます。
55nobodyさん:2009/09/16(水) 11:33:18 ID:???
>>54
まさかとは思うが、root でログインしようとかしてないよね?
PermitRootLogin no で弾かれてるとか
56nobodyさん:2009/09/16(水) 18:38:05 ID:???
Railsでmigration使わない開発ってアリでしょうか?
使い慣れたDB設計ツールからSQL吐きたいってのは邪道ですか?
5745:2009/09/16(水) 19:23:55 ID:???
>>52
公開鍵の設定はpageantを使ってあり、capistranoで使用しているNet:sshはwindows環境では
pageantを使ってくれるみたいです。

>>53
確認したところ、ディスク残り容量は問題ありませんでした。

>>55
下記のようにdeploy.rbで設定してあり、rootではログインしていません。sshはrootログインは弾いています。
set :use_sudo, false
set :user, "www-data"

なお、上記ユーザーでsshクライアント(Poderosa3)でのログインを及び、
winscpでのsftp転送が可能なことは確認しています。
5845:2009/09/16(水) 19:35:00 ID:???
解決しました(`・ω・´)

sshdの設定がテスト環境と違っていたので、修正してみたところ無事デプロイが通るようになりました。

/etc/ssh/sshd_config にて、

ClientAliveInterval 15
ClientAliveCountMax 3

ClientAliveInterval 60

のように修正しsshdを再起動したところ、うまく行くようになりました。
他のsshクライアントでうまく行くから他の原因かと思ってました。

みなさまのおかげさまです。ありがとうございました。
59nobodyさん:2009/09/16(水) 20:28:55 ID:???
>>56
ふつうにアリだよ。
60nobodyさん:2009/09/16(水) 21:34:48 ID:???
普通にナシだろう。逆に手間かかるのがオチ
61nobodyさん:2009/09/16(水) 21:40:58 ID:???
>>60
既存DBを使うようなものは作ったことがないんですね。
62nobodyさん:2009/09/16(水) 23:03:54 ID:hMTblvM+
今回初めてCapistranoを使いRailsアプリケーションのデプロイ作業に取り組んでいるのですが、
cap deploy コマンドを入力し、パスワードを入力した後の処理がエラーになって先に進みません。
ネットで調べたのですがどうも原因が分からず、3日ほどハマっています。
もしよければ、以下のエラーの内容から解決方法のアドバイスを頂けないでしょうか。

クライアントマシンはWindowsVista、リポジトリはBuffaloのLinkStationにあり、サーバはFedora 10です。

C:\InstantRails\rails_apps\demo>cap deploy
* excuting `deploy'
* excuting `deploy:update'
** transaction: start
* excuting `deploy:update_code'
excuting locally: "svn info file:///L:/demo/branches/stable -rHEAD"
*** excutable `svn' not present or not in $PATH on the local system!
* excuting "svn export -q -r3 file:///L:/demo/branches/stable /home/tyn/www/demo/releases/20090916124357 && (echo 3 > /home/tyn/www/demo/releases/20090916124357/REVISION)"
servers: ["tyn-market.com"]
Password:
[tyn-market.com] excuting command
** [tyn-market.com :: err] svn: URL 文字化けしている ra_local 文字化けしている
** [tyn-market.com :: err] svn: 文字化けしている 'file:///L:/demo/branches/stable' 文字化けしている
command finished
*** [deploy:update_code] rolling back
* excuting "rm -rf /home/tyn/www/demo/releases/20090916124357; true"
servers: ["tyn-market.com"]
[tyn-market.com] executing command
command finished
failed: "sh -c 'svn export -q -r3 file:///L:/demo/branches/stable /home/tyn/www/demo/releases/20090916124357 && (echo 3 > /home/tyn/www/demo/releases/20090916124357/REVISION)'" on tyn-market.com

エラーメッセージの中に文字化けしている個所がいくつかあります。
63nobodyさん:2009/09/16(水) 23:05:46 ID:hMTblvM+
エラーメッセージは以上です。
よろしくお願い致します。
64nobodyさん:2009/09/16(水) 23:35:15 ID:???
>>60
幸せな環境で仕事してるんだろうなぁ。羨まし
65nobodyさん:2009/09/16(水) 23:59:26 ID:???
>>62

excutable `svn' not present or not in $PATH on the local system!
ってことじゃんか?
ローカルとリモートでsvnが使える?


66nobodyさん:2009/09/17(木) 00:06:00 ID:???
>>62
> ** [tyn-market.com :: err] svn: URL 文字化けしている ra_local 文字化けしている
> ** [tyn-market.com :: err] svn: 文字化けしている 'file:///L:/demo/branches/stable' 文字化けしている

これ、ディプロイ先でチェックアウトしようとしたときにsvnが受け取っている
リポジトリパスなんだが、たぶんローカルでチェックアウトするときのをそのまま
使ってるよね?

67nobodyさん:2009/09/17(木) 10:14:22 ID:AsBV+oBz
vim-railsで変数の定義部にジャンプする機能ってないですかねぇ??
統合開発環境であるような。
そもそもvimではそういうのって無理なのかしらん。
エディタの話になってしまって申し訳ないですが・・詳しい方いたら教えていただけると幸いです。
68nobodyさん:2009/09/17(木) 10:28:36 ID:???
>>62
サーバー側でsvnからチェックアウトしようとして失敗しているのかな?
もし、サーバーからアクセスできないsvnリポジトリを使っているなら(例えば、ローカルにあるとか)、
 set :deploy_via, :copy
を指定すれば、
ローカルでsvnからチェックアウト→tar.gzで固めて→sftpでデプロイ先に転送→デプロイ先に解凍
してくれる。

以下は記述例:
set :repository, "svn+ssh://my_svn/my_project/trunk" #(例) ローカルからアクセス可能なリポジトリURL
set :deploy_to, "/home/www/#{application}" #(例)デプロイ先のディレクトリ
set :deploy_via, :copy
69nobodyさん:2009/09/17(木) 11:19:40 ID:???
railsで80000pv/日のサイト運営したいんですけど月何万ほどかかりますか?
70nobodyさん:2009/09/17(木) 11:58:28 ID:???
PHP の 3 倍くらいかな
71nobodyさん:2009/09/17(木) 12:27:35 ID:???
80000pv/日のコンテンツ(ネタ)を持っているだけでうらやましい
エロサイトかなにか?(悪く行っているのではありません)

技術を身につけても、プライベートではサイトを開くネタがないよ。
(本業が SE なので、仕事では顧客から請け負った業務イントラを Rails で作っているけど)
72nobodyさん:2009/09/17(木) 15:16:06 ID:???
>>67
タグで飛べばいいじゃないの?
73nobodyさん:2009/09/17(木) 15:19:26 ID:WSgiLhix
>>65, 66, 68
回答有り難うございます。Railsデプロイ読みながらやっているのですが、バージョン管理システムを使うのも初めてなものでして。。
"リモート"がリポジトリのあるLinkStationで、"ローカル"が開発作業をしているWindowsマシンで、"サーバ側"がデプロイ先のLinuxマシンという理解で良いでしょうか?

ご指摘の通りサーバ側からLinkStationにアクセスできる設定にはしておらず、ローカルでチェックアウトするときのパスがそのまま使えると思っていました。
ローカルのSubversionを使ってデプロイ先のサーバにアクセスしていると勘違いしていました。

サーバ側のSubversionは何か設定やリポジトリの作成??が必要なのでしょうか。手元にある書籍では殆ど触れられておらず、今ひとつ全体像がつかめずにいます。
何かあれば助言頂けないでしょうか。よろしくお願いします。

set :deploy_via, :copy も試してみようと思います。
74nobodyさん:2009/09/17(木) 17:54:24 ID:???
サーバ側でsmbclientなどを使ってLinkStationのファイルを共有する設定にしても
よさそうね。
75nobodyさん:2009/09/17(木) 18:59:24 ID:???
Rails3.0っていつ出るんだい?
76nobodyさん:2009/09/17(木) 19:40:34 ID:???
年内にはβに到達しないと予測。
77nobodyさん:2009/09/17(木) 19:57:25 ID:???
>>73
Fedoraの方にログインして
ssh でも http でも samba でもなんでもいいからやりやすいので LinkStation にアクセスできるようにして
$ svn ls リポジトリ
が通ればOK
set :deploy_via, :copy はサーバ側を弄らせてもらえない場合の最終手段かな
78nobodyさん:2009/09/18(金) 12:52:28 ID:ITCAk7dP
これからrailsやろうと思ってる者です。
そして、インストールの時点でコケてしまいました。

$gem install rails
ERROR: While executing gem ... (Zlib::BufError)
  buffer error

なので、gemをアップデートしました。

$gem update --system
$gem update
windows再起動

$rails install rails
ERROR: While executing gem ... (Zlib::BufError)
  buffer error

・・・。
この場合、どうすればインストール出来ますか?
ぶしつけですみませんが、教えて!エロい人!
79nobodyさん:2009/09/18(金) 12:56:06 ID:ITCAk7dP
>>78です。
情報が足りてませんでした。

Windows XP SP3
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
gem 1.3.5

です。
80nobodyさん:2009/09/18(金) 13:16:48 ID:???
zlib入れろ
81nobodyさん:2009/09/18(金) 13:56:09 ID:ITCAk7dP
>>80 返信ありがとうございます。
調べてみたところ、zlibが存在してるんですが、別口で入れるものでしょうか?

C:\ruby\bin>ls zlib*
zlib1.dll
82nobodyさん:2009/09/18(金) 14:50:59 ID:LN3EfzwI
>>74, 77
smbclientで共有してみましたが cap deploy 失敗してしまいました。

65さんのおっしゃる
>>excutable `svn' not present or not in $PATH on the local system!

このエラーメッセージが毎回出現します。意味がよく分からないのですが、どういうことでしょうか?
重ね重ねすみません。
83nobodyさん:2009/09/18(金) 16:35:16 ID:???
>>82
svn コマンドが PATH から見つからないって言っているんじゃないの?
84nobodyさん:2009/09/18(金) 17:26:03 ID:LN3EfzwI
>>83
WindowsでもLinuxの方でもsvnコマンドは実行出来るのですが、まだ何かパスを通さなければいけないのでしょうか?
それか、LinkStationにもSubversionをインストールしなければならないとかでしょうか。。
85nobodyさん:2009/09/18(金) 17:46:12 ID:???
>>84
ディプロイ先にログイン(svnを実行できるケース)して
$ echo $PATH
$ which svn

次に、capistranoから
run 'echo $PATH'
してみたらどうなる?
86nobodyさん:2009/09/18(金) 18:21:16 ID:LN3EfzwI
>>85
$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/lib/ccache:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/tyn/bin

$ which svn
/usr/bin/svn

以上コマンド入力の結果です。

>>次に、capistranoから run 'echo $PATH' してみたらどうなる?
deploy.rbに run 'echo $PATH' というコードを記述すればよいのでしょうか?
間違っていたらごめんなさい。
87nobodyさん:2009/09/18(金) 18:36:03 ID:???
あー、
$ cap invoke COMMAND='echo $PATH'
でいいや。と思ったが、/usr/bin/svn なら cap から実行したときも
見える可能性が高いな。

> excutable `svn' not present or not in $PATH on the local system!

んん、ローカル!?
88nobodyさん:2009/09/18(金) 18:51:18 ID:???
>>84
> それか、LinkStationにもSubversionをインストールしなければならないとかでしょうか。。

え? LinkStation にリポジトリがあるって言ってなかったか?
89nobodyさん:2009/09/18(金) 19:16:52 ID:???
>>84
>それか、LinkStationにもSubversionをインストールしなければならないとかでしょうか。。

file:でやってるなら不要。

90nobodyさん:2009/09/18(金) 19:19:19 ID:LN3EfzwI
>>88
mkdir L:\demo
svnadmin create L:\demo

以上のコマンドを入力してリポジトリを作成しました。Windowsマシンからアクセスしているので、
LinkStationにはimportしたファイルしか置いてないです。。
91nobodyさん:2009/09/18(金) 19:20:45 ID:???
L:はLinkStationで公開しているディスクをWindowsで見たときの
ドライブレターということでよろしいか?
92nobodyさん:2009/09/18(金) 19:25:55 ID:LN3EfzwI
>>91
はい。
93nobodyさん:2009/09/19(土) 01:20:18 ID:???
ruby script/generate model Blog name:string user_id:integer

generateスクリプトからマイグレーションファイルを作成する場合、カラムは型しか指定できないのですか?
ググってみてもドキュメント読んでもこんな感じの例しかない。
カラムごとに{:null => false, :limit => 100}みたいなオプションが使えると便利なのに。
94nobodyさん:2009/09/19(土) 04:02:31 ID:???
>>93
generatorのテンプレート見れば一発でわかるが、名前と型のみ。
scaffoldのビューで必要な情報しか引数に取るようになってない。
95nobodyさん:2009/09/19(土) 05:19:30 ID:???
>>93
> カラムごとに{:null => false, :limit => 100}みたいなオプションが使えると便利
全然便利じゃないと思うぞそれ
96nobodyさん:2009/09/19(土) 10:40:16 ID:???
回答ありがとうございます。

>>94
なるほど〜やっぱりダメなんですね。
>>95
便利じゃないですか?
generate実行した後に、いつもマイグレーションファイルを修正するってのはRailsの精神に反してる気がしますけど。
97nobodyさん:2009/09/19(土) 10:58:04 ID:???
>>96
じゃあ仮にカラムが20〜30あると仮定して
想定されるコマンドラインを頑張って書いてみてくれw
98nobodyさん:2009/09/19(土) 11:11:46 ID:???
generate文で指定するのが大変な時は省略してデフォルト値にすればいいだけじゃないですか?
カラムが2〜3個しかないようなテーブルだってよくあることだし、そんな時はgenerate文で全部指定したくなる。
きめ細かく設定できるけど省略すればデフォルト値が用意されてるってのがRailsのスタイルだと思ってた。
99nobodyさん:2009/09/19(土) 11:36:25 ID:???
そう思うなら直してpull requestでも投げとけ。
100nobodyさん:2009/09/19(土) 11:49:47 ID:???
migrationを極力シンプルにして、バリデーションはモデルだけに書く派なので
今のジェネレータでとくに困ってないな
101nobodyさん:2009/09/19(土) 12:01:17 ID:???
>>98
そんな generate が欲しいなら勝手に改造したら?
ただの rubyスクリプトだよ

で、すべての型の妥当なデフォルト値とやらを考えてみたらいいよ
102nobodyさん:2009/09/19(土) 12:24:18 ID:???
型をデフォルトにするなんて誰も言ってないけど
103nobodyさん:2009/09/19(土) 12:35:58 ID:???
確かに「誰も」言ってないw
104nobodyさん:2009/09/19(土) 12:47:51 ID:???
「すべての型におけるオプションの妥当なデフォルト値」くらいか?
105nobodyさん:2009/09/19(土) 13:40:07 ID:???
>>104
そう、そんな感じ。言い方が悪かった。

ruby script/generate model Book title(:string, null=>false, limit=>50) author(:string, limit=>50) description:string

これで
title・・・null不可、上限50文字
author・・・null可(デフォルト)、上限50文字
descriptionはnull可(デフォルト)、 上限255文字(デフォルト)
みたいに定義できたら便利だと思う。
106nobodyさん:2009/09/19(土) 18:39:42 ID:???
>>105
全く便利じゃない
107nobodyさん:2009/09/19(土) 18:41:51 ID:???
generate文(笑)
DSL じゃねえっつーの
108nobodyさん:2009/09/19(土) 18:51:00 ID:???
>>105
シェルのメタキャラクタがむき出しなんですけど
109nobodyさん:2009/09/19(土) 19:04:05 ID:???
個人的には>>105の考え方に同意。まぁ人によって感じ方は違うだろうけど。
110nobodyさん:2009/09/19(土) 21:29:58 ID:???
>>105
django
111nobodyさん:2009/09/20(日) 01:35:43 ID:???
↓こんな感じで、itemモデルのmy_text要素を編集画面で使ってるのですが

<% form_for(@item) do |f| %>
  <%= f.text_area, :my_text %>
<% end %>

このmy_text要素の「<br/>」という文字列を改行(\n)に置換したいのですが、
どうしたらいいでしょうか…。
そのmy_text内に<br/>を保持させるなというのは、要件なので無理です。

↓こう書き換えれば一応うごくのですが・・・もっとスマートにできるのかなぁと・・・
<%= f.text_area :my_text, {:value => f.object["my_text"].gsub("<br\/>", "\n") } %>

112nobodyさん:2009/09/20(日) 03:54:52 ID:???
ヘルパーメソッドに変換用のメソッド作れば?
113nobodyさん:2009/09/20(日) 11:02:30 ID:???
最初からHTMLを含まないテキストにしといて
表示するときにsimple_formatやauto_linkを使う手も。
114nobodyさん:2009/09/20(日) 13:07:43 ID:???
理想は、データは本来の姿(HTML用に整形済みとかでない)で保持して
出力時に必要な処理をすることだけど、

> そのmy_text内に<br/>を保持させるなというのは、要件なので無理です。

「<br/>を保持させるなというのは、(保持するという)要件なので無理」
という意味か。

115nobodyさん:2009/09/21(月) 12:29:55 ID:???
その要件自体無理なので実装不能で終了したら。
116nobodyさん:2009/09/21(月) 12:59:48 ID:???
ここまでするくらいなら >>111 で十分という。

class BrSanitizer < HTML::FullSanitizer
  def process_node(node, result, options)
    if node.class == HTML::Text
      result << node.to_s
    elsif node.class == HTML::Tag && node.name == 'br'
      result << "¥n"
    end
  end
end

こんなサニタイザを作って、f.text_area_br2n とかいうメソッドの内部で
これを利用して整形する方法。
117nobodyさん:2009/09/24(木) 18:42:36 ID:???
Railsでブログ(のようなもの)のプレビュー機能を実装したいのですが、足がかりのようなものはありませんでしょうか?
CRUDの編集画面で、データの編集した中身を確定する「送信する」ボタンのほかに、
「プレビュー」ボタンがあるイメージです。

どのように実装したものか?と…。

例えば、form_forで指定した「送信する」の他の「プレビュー」用のURLに送る方法はどうしたものでしょうか?

環境は、Ruby 1.8.7 Rails 2.3.4です。
118nobodyさん:2009/09/24(木) 22:04:34 ID:???
submitの値で場合分けするんじゃない?
それとも、1つのフォームに複数のアクションを付けられるんだっけ?
119nobodyさん:2009/09/24(木) 22:27:45 ID:???
ajaxとかどうでしょうか。
フォーム全部divで囲っておいて、プレビューボタンで表示
フォームはその時隠すようにする
120117:2009/09/25(金) 08:15:42 ID:???
>>118
なるほど…それなら、ボタン2つつけても、プレビュー用の表示ルーチンに持ってこられますね。

>>119
Redmineとか、MediaMarkerみたいなリアルタイムでポコッとプレビューが出現する感じでしょうか?

RailsでのAjaxはまだ全然やっていないので調べてみます。
form_for内のデータをそのまま渡せるのかなーとか疑問があったり・・・
121nobodyさん:2009/09/25(金) 17:00:44 ID:???
ajaxならフォーム全体でも、一部でも問題なくpostできるけど
122nobodyさん:2009/09/25(金) 20:29:53 ID:???
困っていることがあります。
論理削除プラグインのacts_as_paranoidと、階層構造を1つのformで保存したりするattribute_fu プラグイン
を導入しているのですが、

モデルHoge
 acts_as_paranoid
 has_many :foobars, :dependent => :destroy, :attributes => true
モデルFoobar
 acts_as_paranoid
 belongs_to :hoge
などとというように書いておくと、
Hogeをdestroyで消した時に、:dependent => :destroyにて関連付けたFoobar郡を同時に論理削除してくれるのですが、
中で freezeをかましているようでして、
:attributes => true をつけて attribute_fu の管理下においた状態だと、
Hogeをsave時に freezeされたfoobars を保存しようとして、

 can't modify frozen hash

などとエラーがでます orz
こういう状況を回避する方法はないのでしょうか?

destroyのときだけ、:attributes => true をなくす、というか、
attribute_fuで base.class_eval されている中の
 after_update :save_managed_associations
のフック処理(この中で該当のエラーが起きている)を回避する方法といいますか…。

acts_as_paranoidは下記のものを、
technoweenie's acts_as_paranoid at master - GitHub
http://github.com/technoweenie/acts_as_paranoid
attribute_fuは下記のものを利用しています。
giraffesoft's attribute_fu at master - GitHub
http://github.com/giraffesoft/attribute_fu/tree
123nobodyさん:2009/09/25(金) 23:26:44 ID:???
rails1.2向けに書かれた本で、勉強してるのですが
インスコしたrailsが2.1.1ですた。エラーでて気づきました。
scaffoldの作法が変わってるんですね。

1.2なrailsをインストして、勉強したほうがいいですかね?
124nobodyさん:2009/09/25(金) 23:37:55 ID:???
>>123
バージョンが違うと、また違うところでつまづくよ。
とりあえず、1.2のrailsをインストールして本を1冊終わらせる。
その後、最新のRailsでアプリを作っていくほうがいいと思う。
125nobodyさん:2009/09/25(金) 23:49:30 ID:???
>>122
Railsの新しいの使ってんなら find のデフォルト値設定できたはずだから
1系用に苦し紛れに作られたような acts_as_paranoid はもう用無しじゃね?
と、適当にレスしてみる
126nobodyさん:2009/09/25(金) 23:50:52 ID:???
ラジャ!
127123:2009/09/26(土) 00:17:09 ID:???
rails1.0向けだったわ・・
新しい本買うかな・・・
128nobodyさん:2009/09/26(土) 07:37:14 ID:???
>>127
1.0なのか・・・
たしか、2.3対応の本が出ていたと思うので、それを買うほうがいいかもね。
「Ruby on Rails 2」ではじめるWebアプリケーション開発
ってやつ。
中身はちゃんと見てないので、良い本かは分からないけど。
129nobodyさん:2009/09/26(土) 11:20:40 ID:???
2006年の本だが……、arton氏の
「かんたんRuby on RailsでWebアプリケーション開発」
は、特定のバージョンのRailsを本に添付して、それに沿って
教えるという体裁だったな。

新しめのでも似たような本はあるかもしれない。
130nobodyさん:2009/09/26(土) 11:23:52 ID:???
>>122

> destroyのときだけ、:attributes => true をなくす
ではないけれど、フリーズ状態でなければ実行というアプローチで、

alias_method_chain :save_managed_associations, :freeze_check

def save_managed_associations_with_freeze_check
  save_managed_associations_without_freeze_check unless frozen?
end

とか出来ないかね
131nobodyさん:2009/09/26(土) 14:12:05 ID:???
なっっげえええええええ
132nobodyさん:2009/09/26(土) 14:46:53 ID:???
>>128
おいおい工学社のRails本を薦めるな。中身をちゃんと見てくれよ。
133nobodyさん:2009/09/27(日) 04:32:29 ID:???
エラーが出たときだけproduction.logに出力させるのはどうすればいいのでしょうか?
今はすべてのアクセスが記録されてすぐ肥大してしまいます
一応毎日ログローテーションはしていますが、エラーだけ残せばサーバーリソースも節約できると考えました
よろしくお願いします
134nobodyさん:2009/09/27(日) 10:01:47 ID:u6jeeNBu
environments/production.rbの中でconfig.log_level = :warn
135nobodyさん:2009/09/27(日) 14:40:48 ID:gn9S1exE
Apache + Passenger でRailsプロジェクトを自宅サーバで公開しようと思い、Passengerをインストールしてhttpd.confを設定したのですが、プロジェクトのページが表示されません。
どうすればよいでしょうか?質問が抽象的ですいません。
136nobodyさん:2009/09/27(日) 14:45:56 ID:???
うん。抽象的すぎる。それで分かればエスパー。
Passengerのインストール後、「以下の設定をせよ」と出てくるもの
だけでは設定終わらないよ。

137nobodyさん:2009/09/27(日) 17:21:16 ID:???
>>135
抽象的になっちゃうけど、
Passengerのインストールかhttpd.confの設定が間違っているんだと思うんで
そこらへん見直すといいよ。
138nobodyさん:2009/09/28(月) 20:03:00 ID:???
画像うpできるシステム作ってるんだけど、画像をバイナリでDBに持たすのと、
実ファイルとして保存するの、どっちがお好み?
139nobodyさん:2009/09/28(月) 21:16:33 ID:???
業務アプリで、サーバを冗長化する予定があるなら悩む。

個人の趣味では面倒なのでファイルで持つ。アクセス制御とか出来るように、
DocumentRootには置かずに何らかのアクション経由で提供する。

140nobodyさん:2009/09/28(月) 23:15:21 ID:???
>>139
ありがとうございます。
趣味アプリなので悩みましたが、やっぱdbにしますた。

↓この方法で、初回読み込み時はDBから、2回目はtempファイルから…という
考え方がすばらしい。
ttp://d.hatena.ne.jp/sakusan_net/20080411/1207932177
141nobodyさん:2009/09/28(月) 23:29:56 ID:???
ファイルがたくさん追加される可能性があるなら、
ディレクトリをわけるのを忘れずにね
142nobodyさん:2009/09/28(月) 23:50:00 ID:???
>>141
ファイル名は一意になるのですが、ディレクトリ分けた方がいいんですかね?
143nobodyさん:2009/09/28(月) 23:54:37 ID:???
一般に、ディレクトリってのは、内包するファイルの数が増えると
パフォーマンスが落ちるのだよ。
ファイルデータのmd5sumの最初の2文字くらいで2層ディレクトリ
を掘るのをよく見るね。
144nobodyさん:2009/09/29(火) 00:07:29 ID:???
5万ファイルくらいtouchしてからlsしてみるとわかるよ。
145nobodyさん:2009/09/29(火) 00:15:57 ID:???
>>143-144
ありがとうございます。
非常に勉強になりました。
146nobodyさん:2009/09/29(火) 15:49:52 ID:???
>>134
ありがとうございました!
147nobodyさん:2009/09/29(火) 18:24:03 ID:???
text_field_tagやurl_forなどの初めからあるヘルパをちょっと拡張したい場合
どうやるのがいいのでしょうか。

module MobileFormHelper
 def self.included(klass)
  klass.class_eval do
   alias_method_chain :text_field_tag, :mobile
  end
 end
 def text_field_tag_with_mobile(name, value = nil, options = {})
  options = options.dup
  mobile_format = options[:mobile_format]
  if mobile_format
   options[:istyle] = ...
   ...
   ...
  end
  text_field_tag_without_mobile(name, value, options)
 end
end


こんなかんじでやってんだがうまくできないすっすー
148nobodyさん:2009/09/29(火) 19:19:13 ID:???
>>139
> DocumentRootには置かずに何らかのアクション経由で提供する。

これはつまり、public以下(例えば public/images/upload )には置かず、
upload/ など見えないところにファイルを置いて、
コントローラーで画像を読み込んで返すようにするってことでしょうか?
アクセス制限が使えるけど、Rails返すと重くならないものかな?
149nobodyさん:2009/10/02(金) 07:08:55 ID:???
Rails 3.0が1.8.7よりも前のバージョンをサポートしないと明言した
150nobodyさん:2009/10/02(金) 19:56:55 ID:khUy0zA7
1.8.6のHashはバグ持ちだからか
151nobodyさん:2009/10/02(金) 20:13:30 ID:???
>>150
なんかあったっけ?
152nobodyさん:2009/10/04(日) 00:57:03 ID:jQSUCkZW
ttp://paulbarry.com/articles/2009/09/14/why-rails-3-will-require-ruby-1-8-7

1.8.7以降というのは半月前に公になっていたわけね
153nobodyさん:2009/10/04(日) 01:47:54 ID:???
1.9.1+Rails2.3.2でアプリを作ったのだが、
2.3.4にしたら動かなくなってしまった。2.3.3では問題なかったのだが。
US-ASCIIなんたらとか言ってるから文字コードか。
はよ3.0出ろよ。出たら作りかえるから。
154nobodyさん:2009/10/04(日) 12:07:51 ID:???
Rails 3 Update by Yehuda Katz on Vimeo
http://vimeo.com/6703956
155nobodyさん:2009/10/04(日) 22:12:35 ID:???
ruby入門書を今日読み終えたおれに、最適なRoR入門書を教えてください。
156nobodyさん:2009/10/04(日) 22:39:39 ID:ZAPGL++U
さくらインターネットのレンタルサーバーにruby on rails環境を構築しようとあれこれ試しています。
(参考URL http://nyon2.net/archives/2009/01/ruby-on-railsruby-on-rails.html )

sqlite3-rubyのインストールで躓きました。gemのインストールが失敗します
解決方法をご教授ください。
157156:2009/10/04(日) 22:42:24 ID:ZAPGL++U
量が多いため2つにわけました。実行結果は以下の通りです。
よろしくお願いします。

%setenv RB_USER_INSTALL true
%gem18 install sqlite3-ruby
Building native extensions. This could take a while...
ERROR: Error installing sqlite3-ruby:
ERROR: Failed to build gem native extension.

/usr/local/bin/ruby18 extconf.rb install sqlite3-ruby
checking for fdatasync() in -lrt... no
checking for sqlite3.h... no
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.

Provided configuration options:
〜オプションのため略しました。〜

Gem files will remain installed in /home/blueee/lib/ruby/gem/gems/sqlite3-ruby-1.2.5 for inspection.
Results logged to /home/blueee/lib/ruby/gem/gems/sqlite3-ruby-1.2.5/ext/sqlite3_api/gem_make.out
158nobodyさん:2009/10/04(日) 23:40:56 ID:???
sqlite3 のコンパイルに必要なヘッダとか、
あとsqlite3自体が入っていることを確認するべき。
159156:2009/10/05(月) 01:44:55 ID:tqFfwgsk
早速ありがとうございます。

確認したところsqlite3自体は入っています。
%sqlite3 --version
3.6.14.2

sqlite3.hやライブラリも入っているようです。
%ll /usr/local/include/sqlite3.h
-rw-r--r-- 1 root wheel 254446 Jun 17 12:41 /usr/local/include/sqlite3.h

%ll /usr/local/lib/libsqlite3.so
lrwxr-xr-x 1 root wheel 15 Jun 17 12:41 /usr/local/lib/libsqlite3.so -> libsqlite3.so.8
160nobodyさん:2009/10/05(月) 01:50:05 ID:???
じゃあ /usr/local がgem install時に使われない状態なんだろうね。

$ gem install sqlite3-ruby -- --with-sqlite3-dir=/usr/local
かな。
--with-sqlite3-lib とか --with-sqlite3-include もあるらしい。
161nobodyさん:2009/10/05(月) 01:55:19 ID:???
「省略した」とあるオプションの中に>>160で書いたやつあるはずなんだよね。

162156:2009/10/05(月) 03:26:41 ID:tqFfwgsk
言われた通りやってみたらできました。
ありがとうございます!

%setenv RB_USER_INSTALL true
%gem18 install sqlite3-ruby -- --with-sqlite3-dir=/usr/local
Building native extensions. This could take a while...
Successfully installed sqlite3-ruby-1.2.5
1 gem installed

これってsqlite3のヘッダなどのパスがgemのデフォルトと違ってたってことなんですかね?
163nobodyさん:2009/10/05(月) 08:49:14 ID:???
unix系でデフォルトなんて無いけどな。環境によって違うのが普通。
自分で鯖建てたりして、もうちょっと勉強したほうが。
164nobodyさん:2009/10/05(月) 12:41:34 ID:???
prefixはデフォルトで探すようになってるはずなんだが。
つまりruby自身が/usr/localにインストールされてるなら/usr/localは見てるはず。
165nobodyさん:2009/10/05(月) 15:58:08 ID:IPNAD5I/
Subversionを使ってコミット/チェックアウトする時にpublicフォルダのサブフォルダのいくつかを
更新しないようにしたいのですが、そのようなコマンドはあるでしょうか。
166nobodyさん:2009/10/05(月) 16:07:22 ID:???
167nobodyさん:2009/10/05(月) 19:49:34 ID:yk3Qebit
windowsで開発したアプリケーションをlinuxで運用したいんですが
どうすれば良いでしょうか?
168nobodyさん:2009/10/05(月) 19:57:45 ID:???
>>167
日本語でok
169nobodyさん:2009/10/05(月) 20:13:31 ID:???
ウィンドウズで開発したアプリケーションをリナックススで運用したいという意味です
170nobodyさん:2009/10/05(月) 20:21:28 ID:???
>>169
いや、確かに英単語がカタカナにはなっているけどさwww
171nobodyさん:2009/10/05(月) 20:25:53 ID:???
クススって馬鹿にされてるみたいだ
172nobodyさん:2009/10/05(月) 21:51:18 ID:???
RubyとRailsの実行環境さえ用意できればあとはwindowsとかわらんよ
173nobodyさん:2009/10/05(月) 23:00:27 ID:???
Windowsで開発したRailsアプリケーションでもLinux用の特別なデプロイは
必要ないと考えてよろしいのでしょうか?
174nobodyさん:2009/10/06(火) 00:09:18 ID:???
特別なデプロイってのが意味分からん
何が気になってるのか具体的に言ってよ
175nobodyさん:2009/10/06(火) 00:19:49 ID:???
あ、すみません
簡単に言うとWindowsで書いたソースコードをLinuxのルートにコピーするだけで
動くんでしょうか?
176nobodyさん:2009/10/06(火) 00:40:32 ID:???
環境言ってくれなきゃ何もアドバイスしようが無いんだってば
Webサーバーは使うの?RubyとRailsのインストールと設定は終わってるの?DBは?
177nobodyさん:2009/10/06(火) 00:59:22 ID:???
何度もすみません

開発環境はOSがWindowsVistaとXP。NetBeansを使おうと思っています。
実行環境はOSがUbuntu9.04。
開発実行環境ともRubyのバージョンは1.8.7、Railsは2.3.2です。
WebServerはApacheです。
DBはsqliteかMySQLどちらが良いか検討中です。
178nobodyさん:2009/10/06(火) 01:29:31 ID:???
> Linuxのルートにコピーするだけ
ってほど簡単ではないけど普通はそのままのコードで動くよ。

あなたの文章からにじみ出てくる理解度だと、LinuxでRails環境を
作った経験があるひとに初めの1回だけお願いすることをオススメするよ。

179nobodyさん:2009/10/06(火) 01:37:49 ID:???
ありがとうございます。

残念ながらシュミグラマのため、周囲にプログラミング出来る人や
Linuxに習熟した人は1人もおりません。
一応Ubuntu専用機および仮想マシン上でRails環境を自力で構築して
Linux状でScaffoldしたテストプログラムが正常に動くことは確認しております。
(Railsのバージョンで手こずりましたが)
が、指摘された件に関してはかなり不安があるのも事実なので
本格的な開発に入る前に質問させて貰いました。
まだたのしいRubyとRailsレシピを一回ずつ読んだ程度なので
もう少し準備しようと思います。
180nobodyさん:2009/10/06(火) 02:03:27 ID:???
自力でLinux上のRails環境を作れたなら時間をかけて
頑張れば何とかできるのではないでしょうか。

Windowsでつくったアプリケーションも普通は問題なく動きます。
気をつけるのは、
・文字コードはUTF8
・改行コードに気をつける
・ファイルシステムのディレクトリ区切り文字
・ファイルのテキスト/バイナリモード
・その他Windows依存のこと
ぐらいかなあ。

頑張ってください。
181nobodyさん:2009/10/06(火) 02:33:02 ID:???
お節介だけど、サイト構築だけが目的の趣味プログラマならそれでいいけど
プログラミングを勉強したいという趣味プログラマならLinux環境で開発することをお勧めする。
182nobodyさん:2009/10/06(火) 02:45:11 ID:???
I think so
183nobodyさん:2009/10/06(火) 07:38:34 ID:???
>>181
ターミナルへのお誘いきたぁ
184nobodyさん:2009/10/06(火) 08:36:54 ID:???
>>180
重ね重ね、ありがとうございました。

>>181
時間と環境と勘案して検討してみます。
185nobodyさん:2009/10/06(火) 09:45:34 ID:???
Poderosaおすすめ、Puttyもいいけど。
186nobodyさん:2009/10/06(火) 11:31:18 ID:???
UTF-8 TeraTerm だろ JK

Putty は、いろんな便利な機能があるけど、いまいちなじめない。
187nobodyさん:2009/10/06(火) 13:06:28 ID:???
Linux環境で開発した方が結果的に時間も短くて済むよ
188nobodyさん:2009/10/06(火) 14:21:23 ID:???
いやそれは無いわ
emacs暦8年ぐらいだけどeclipse開発の方が効率は上だぜ
189nobodyさん:2009/10/06(火) 14:41:07 ID:???
WindowsのRuby遅いからなぁ
ちょっとした事も遅いから、Linuxの方が良いな
190nobodyさん:2009/10/06(火) 20:25:04 ID:???
NetBeansで開発だからjrubyだよ
ネイティブ版使うより安定した環境だと思う
使ったことないけど
191nobodyさん:2009/10/06(火) 20:32:13 ID:???
ねっとびーんずって何?美味しそう
192nobodyさん:2009/10/06(火) 22:28:07 ID:???
Windowsで開発なんて難易度高すぎる…
193nobodyさん:2009/10/06(火) 22:34:04 ID:???
俺の想像ではあるが、10年後、20年後にはCUIでの開発ってレアな
存在になっていると思うぞ。
194nobodyさん:2009/10/06(火) 22:38:03 ID:???
>>191
UTF-8でいうと仙豆です
195nobodyさん:2009/10/06(火) 22:58:26 ID:???
CUIコンパイラも新しくなるんだろうか?
196nobodyさん:2009/10/07(水) 05:36:01 ID:???
ここって質問して良いのかな。

passengerをインストールしてとりあえずhttpd.confにLoadModuleとPassengerRoot
とPassengerRuby書いてApache再起動したら(バーチャルホストは書いてない)、
Apacheがセグメンテーション違反で落ちるようになりました。
エラーログ見ると「PassengerRoot configuration option is not specified」と
なっているのですがPassengerRootはコピペしただけ。何となくわざと間違った
パス指定してみたら「passenger-spawn-serverがないよ!」ってエラーが出たん
ですが、なぜ正しいパスだとエラーが違うのか……
あと気になったのは間違ったパス指定するとpassenger以下のlibにpassenger-spawn-server
探しに行ってるんですが、passenger-spawn-serverがあるのはbinの中だよ……
こんなんでハマった人、他にいますか?
いちおう、rails2.3、passenger2.2.5。apacheは2.0.46です。
197nobodyさん:2009/10/07(水) 08:15:30 ID:???
少なくとも設定が間違っているならプログラムがエラーを検出して
起動に失敗したりするはずで、それがセグメンテーション違反で落ち
てしまうのは、プログラム自体のバグかモジュール作りで失敗しているか。


198nobodyさん:2009/10/07(水) 08:27:32 ID:???
教祖がデビアンで開発してるから、リナクスで開発したほうが簡単だよ。
わざわざウィンドウズで苦労しなくても。

インストールミスだな。
インストール方法でも張ったら誰か添削してくれるかもな。


http://pc11.2ch.net/test/read.cgi/php/1244038749/
△▲ WebProg 初心者の質問 Part19 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1158647441/
くだらない質問でもど偉そうに聞いていいスレ
http://pc11.2ch.net/test/read.cgi/php/987560391/
初心的な質問なのですが・・・・
199nobodyさん:2009/10/07(水) 11:13:28 ID:???
>インストール方法

了解。ってもごく普通に
gem install passenger
して
passenger-install-apache-module
しただけです。ちなみにwindowsじゃなくてlinux。red hat enterprise es 3だけどです。
今日は関係すると思われるファイル全部消して1からやり直したけど失敗。全力で諦めムードです。レスくれた人、dクス。
200199:2009/10/07(水) 11:14:38 ID:???
だけどです、ってなんだ。焦るな俺。
201nobodyさん:2009/10/07(水) 11:35:16 ID:???
その手の実行時エラーでありがちなミスで、
ビルド時に使用したライブラリと、実行時に読み込むライブラリが異なる、ってのがあるけど、
その辺は確認したの?。lddとか、ld.conf関連変数をチェックするとか。

あるいは自分で関連ライブラリを変なとこに入れてない? /home とか /usr/local/hoge とかに。
で、ビルドに使ったユーザアカウントだけLD_LIBARY_PATHとかを設定して、
Apacheのプロセスにライブラリの場所を教えずに実行しようとしてるとか?
202nobodyさん:2009/10/07(水) 11:36:21 ID:???
ld.confってなんだ。ld.so関連変数だ。焦るな俺
203nobodyさん:2009/10/07(水) 17:53:45 ID:3DfRmTbM
自宅と職場で開発したいんですけどPCがwindowsで
リモートとかはできない環境です。
C#はプロジェクトフォルダごとUSBメモリにコピーして
両方で使用してたんですが、Railsだとどうするのが簡単でしょうか?
204nobodyさん:2009/10/07(水) 18:33:55 ID:???
まえにJRuby + JasperReport で帳票印刷できんかなぁ、とか言ってたモンだけど...
結果、まぁ出来そう。

ただCRailsのバックグランドでJRubyを動かす場合、JRubyにはforkがないんで、Backgroundrbは動かない。
JRuby対応のbackgroundrb代替品を探すか、自前のDRbサーバをrunnerで動かすかする。
kovyrin-loopsっていうのがgithubにあるけど、これはJrubyで普通に動く。
まぁ中身はシンプルってか大したことはしてないけど。

>>203
なんらかのSCMのリポジトリをUSBメモリに入れて持ち回せば?
205nobodyさん:2009/10/07(水) 19:36:32 ID:???
passenger-spawn-server は自分で作らないとだめ
空のファイルで実行権限があればおk
だった気がする
206nobodyさん:2009/10/08(木) 00:33:25 ID:???
passenger-spawn-server を自分で作ったことなんて一度もねえよ
207nobodyさん:2009/10/08(木) 01:09:08 ID:???
rails.vimのメジャーバージョンアップ

rails.vim - Ruby on Rails: easy file navigation, enhanced syntax highlighting, and more : vim online
http://www.vim.org/scripts/script.php?script_id=1567
rails.vim script version4.0
208nobodyさん:2009/10/08(木) 04:13:15 ID:???
emacsでrubyとかrails補完できるものってないの?
ruby-mode.elとかってインデントとか色を制御するだけだよね?
209nobodyさん:2009/10/08(木) 10:42:37 ID:???
>>134
>environments/production.rbの中でconfig.log_level = :warn
をやったのですが、相変わらずすべてのログが記録されてました…

config/environment.rbにもconfig.log_level = :warn してみましたが変わりません
passenger使ってるのですが、関係ありますでしょうか?
210nobodyさん:2009/10/08(木) 12:35:05 ID:???
webserver再起動した?
211nobodyさん:2009/10/08(木) 15:36:17 ID:???
>>203
mac買え、ノートタイプでもいいから
最初からインストールされてて優秀なエディタTextMateもあるから初心者にとって超簡単。
212nobodyさん:2009/10/08(木) 16:12:20 ID:???
補足。
・(Railsが)最初からインストールされてて
・優秀なエディタTextMateも(シェアウェアで)ある
213nobodyさん:2009/10/09(金) 00:21:52 ID:???
>>208
あるよ
214nobodyさん:2009/10/09(金) 03:10:21 ID:???
railsって10分でブログが作れるらしいね。
ということは相対的に考えて100万ぐらいの軽い案件は2〜3日で出来るわけか
1週間で1案件として月400万、年収5000万は堅いな
夢ひろがりんぐ!
215nobodyさん:2009/10/09(金) 07:49:14 ID:???
>>214
おめーさてはバカだろ?
216nobodyさん:2009/10/09(金) 11:50:00 ID:???
>>215
おい、スルーしろ
単なる釣り針に引っかかるんじゃねYO
217nobodyさん:2009/10/09(金) 17:25:38 ID:???
AWDwR3rdの邦訳はいつ出るのかな.
原著発売日にはすでに日本語への翻訳が始まってると
著者が書いてたけど,それ以降なにもわからんのです
218nobodyさん:2009/10/09(金) 17:32:15 ID:???
3rd は初期 Rails 2 だから、今更出るのは問題あるからじゃないかな。
219nobodyさん:2009/10/10(土) 08:11:21 ID:???
Railsやるのに英語避けられないから
両方の勉強のつもりで読んだら?
220nobodyさん:2009/10/10(土) 08:12:18 ID:???
避けられる
221nobodyさん:2009/10/10(土) 14:02:22 ID:k2nLAcqK
RESTfulの利点ってなんですか?
アクションのみで遷移してほうが簡単だと思うのですが…

222nobodyさん:2009/10/10(土) 14:54:39 ID:???
>>221
「リソースとそれに対するCRUD」という形でモノを考えることを
強制されることだと思っている。
223221:2009/10/10(土) 15:15:46 ID:k2nLAcqK
>>221
強制されることで生じるメリットはどのようなものがあるのですか?

RESTfulに作成されたアプリのイメージがわかないです。
scaffoldで作成されるほど単純なアプリってあまりないような気がします。

224221:2009/10/10(土) 15:16:52 ID:k2nLAcqK
アンカー間違えました。
222の方に対する質問でした。
225nobodyさん:2009/10/10(土) 18:06:20 ID:???
個人でやってる範囲だけど…

URL設計に何の制約もなければ、要望に対して一番素直と思える形
で機能を追加していってしまうことが出来て、アプリケーションが
老舗温泉旅館状態のカオスになるおそれがある。

RESTを意識すると、ある問題を、どんなリソースを用意して、どの
HTTPメソッドを送る形に分類出来るか、事前に意識する必要が出て
くるので、全体のURL構成が見渡し易くなる。

RESTが、というよりは、何かの型に自らはまることのメリットだな、こりゃ。
226nobodyさん:2009/10/10(土) 18:19:41 ID:???
根拠は無いけどRESTは名前が浸透する前に廃れると思う
227nobodyさん:2009/10/10(土) 20:14:30 ID:???
浸透してるからRailsで採用されたんじゃなくて?
228nobodyさん:2009/10/10(土) 21:01:24 ID:???
浸透させたくなったDHHがRailsに採用したという感じではないかな。
229nobodyさん:2009/10/10(土) 21:40:48 ID:???
RESTが浸透してないとか言ってるやつは、WebAPIでなんか作ってみれば?
230nobodyさん:2009/10/10(土) 21:50:07 ID:???
なんちゃってRESTも多いからなー。
231nobodyさん:2009/10/11(日) 01:12:46 ID:???
最近の技術はほとんど名前の後付けに過ぎないからな
232nobodyさん:2009/10/11(日) 03:54:40 ID:???
ajax
cloud
233nobodyさん:2009/10/12(月) 00:31:02 ID:???
型に自らはまっておくと、
link_to("詳細", record) だけで詳細へのリンクになるのが便利
234nobodyさん:2009/10/12(月) 11:26:41 ID:w/VULtBT
RESTfulに書くときってコントローラとモデルが1対1になる感じですよね?
235nobodyさん:2009/10/12(月) 14:10:05 ID:???
マク使うとか馬鹿過ぎw
どうせ鯖はリナックスなんだから、PC買ったほうがいいよ。
236nobodyさん:2009/10/12(月) 18:31:42 ID:???
>>235
意味不明
237nobodyさん:2009/10/12(月) 19:21:15 ID:PIBBLJL/
has_many関係にある2つのモデルに対して情報を登録するフォームにおいて、
error_messages_forでエラーを表示すると、2つのモデルのエラーがまとめて表示されてしまいます。
一方のモデルのエラーだけを表示するような方法はあるのでしょうか?
238nobodyさん:2009/10/12(月) 19:38:28 ID:???
エラーを伏せたいほうのオブジェクトの #errors.clear でどう?
239nobodyさん:2009/10/16(金) 05:53:31 ID:tsHntjAe
rubyスレで間違えて質問してしまいました。本家で質問です。

mysqlのデータを単純にcontrollerでfindで取り出してviewで表示させようとしています。
しかしブラウザでの表示が文字化けならいざ知れず、「#」になってしまいます。
具体的にページのソースを見てみると、その部分は、

#<Book:0x24319ec>

となっています(Bookテーブルのものを取り出して表示しようとしています)。
文法はコントローラで@book = Book.find(params[:id])とし、
ビューで <%=h @book.title %> という風にしているので合ってるのではないかと思っています。

(ビューでp してみたところ、ターミナルには [#<Book id: 1, title: "hoge">] となっているので、
途中までは正常に取り出せているようなのですが、ブラウザ表示のところでこうなってしまって大変悩んでいます。

macosxでMAMPを入れ、いざ開発をしようと決めたところでこのエラーです。
railsのバージョンは2.3.4です。
誰か解決策をご存知の方ご教授おねがいします。よろしくお願いします。
240nobodyさん:2009/10/16(金) 06:57:43 ID:???
mysqlの文字コード設定がsjisとか?
241nobodyさん:2009/10/16(金) 07:07:43 ID:???
>>239
controllerのクラス名か、ファイル名がおかしいんじゃね?
242nobodyさん:2009/10/16(金) 09:10:01 ID:???
p の結果が配列に見えるんだが。
243nobodyさん:2009/10/16(金) 10:54:54 ID:???
githubとかで手軽にソース公開できるようになればこんな問題も即解決
244nobodyさん:2009/10/16(金) 11:34:38 ID:???
>>239
ソース上 #<Book:0x24319ec> となっているなら、
<%= @book %> と書いてしまっているはずなんだが。
245239:2009/10/16(金) 13:05:10 ID:tsHntjAe
>>240-244

ありがとうございます。
文字コードはutf-8になっています。クラス名も全部チェックしました。
ちなみに今朝、テーブル名を変えてみたらうまくいきました。
テーブル名を戻してみるとできません。いまだ謎です。

とりあえず解決はしたので、良かったです。みなさんありがとうございました。
246nobodyさん:2009/10/16(金) 13:15:33 ID:???
すいません、↑はテーブル名ではなく、カラム名です。
247nobodyさん:2009/10/16(金) 13:25:38 ID:???
単純な名前にして予約名とかぶってたんだろ
248nobodyさん:2009/10/16(金) 13:31:02 ID:???
<%= debug @book %> も地味に役に立つことがあるよね。
249nobodyさん:2009/10/16(金) 13:32:05 ID:???
>>247

実際は挙げた例とは違い、最初はカラムも変数もnameでしてたのですが、ほかに変えるといけました。
昔はnameでいけた気がするのですが。。。わかりません。
250nobodyさん:2009/10/16(金) 18:50:52 ID:???
昔はmysqlだったが、いまはsqlightがデフォルトで、その違いのせいとか?
251nobodyさん:2009/10/16(金) 22:13:12 ID:???
つーか、エラーが起きたんなら別の例に置き換えずに
そのまま上げてくれや…
252nobodyさん:2009/10/16(金) 23:30:47 ID:???
>>250

いちよう
% rails sample10 -d mysql
でプロジェクトを作ったので大丈夫だと思うのですが。ありがとうございます。

>>251
おっしゃる通りです....rubyスレの方で質問させていただいたもので答えていただいたときに、
titleカラムで指摘していただいたので、具体的にそのまま上げてしまいました。
まさかそこは関係ないだろうと思っていたので。浅はかでした。混乱させてすいません。
253nobodyさん:2009/10/17(土) 05:14:42 ID:???
いちよう
254nobodyさん:2009/10/17(土) 18:18:42 ID:???
マカってホント情報弱者だなw
255nobodyさん:2009/10/17(土) 18:51:19 ID:???
いちょう
256nobodyさん:2009/10/18(日) 00:59:25 ID:???
ひぐち
257nobodyさん:2009/10/18(日) 14:09:03 ID:???
J^ω^し
258nobodyさん:2009/10/18(日) 14:45:29 ID:???
カッター
259nobodyさん:2009/10/19(月) 22:30:30 ID:BV3oZVvu
Railsでファイルをアップロードして取り込む方法は分かるのですが、URLからWeb上のファイルをダウンロードするようなコードはどう書けばいいですか?
260nobodyさん:2009/10/19(月) 22:34:25 ID:???
>>259
ダウンロードさせるのがRailsアプリで
ダウンロードするのがブラウザ?

ActionController::Base#send_data
ActionController::Base#send_file

261nobodyさん:2009/10/19(月) 23:19:48 ID:BV3oZVvu
>>260

はい。ブラウザからアクセスして、Railsアプリに保存させます。
send_data, send_file試してみます。有難うございました。
262nobodyさん:2009/10/20(火) 01:18:43 ID:???
URLって画像の直リンか?
263nobodyさん:2009/10/20(火) 01:19:24 ID:???
それとも画像サイトのurlを指定して画像をrailsで保存したいのか?
264nobodyさん:2009/10/20(火) 02:07:36 ID:E10g0f4b
まず直接リンクから取り込もうと考えています。いずれはサイトのurlを指定して取り込みたいですが、
こちらは何だか難しそうな気がするんですよね。。
265nobodyさん:2009/10/20(火) 02:34:32 ID:???
public以下、もしくはapacheがよきにはからってくれる場所にファイル
を配置して構わないなら(アクセス制御とかいらないなら)、単にファイル
を置くだけでRails側では何もしなくていいよ。
266nobodyさん:2009/10/20(火) 09:19:41 ID:???
open-uriじゃないの
267nobodyさん:2009/10/20(火) 09:20:39 ID:???
え、アプリがどこかのサイトからhttp getするの?
268nobodyさん:2009/10/20(火) 10:15:42 ID:E10g0f4b
例えばurlをフォームにコピペしてダウンロードボタンをクリックすると、
画像なりpdfファイルがパソコンに保存される、というWebアプリを想定しています。
269nobodyさん:2009/10/20(火) 10:42:16 ID:???
既出だけど、そういうアプリなら、整理すれば
指定されたURLからダウンロード => open-uriライブラリ
ブラウザに結果を返す => send_dataメソッド
となる。
270nobodyさん:2009/10/21(水) 05:37:40 ID:???
素直にリダイレクトするだけのほうが簡単の様な。
271nobodyさん:2009/10/21(水) 10:16:15 ID:YXYYyrvA
urlからファイルを保存する時はダイアログを出現させずに、
保存先のフォルダも手動で指定せずに自動でやってほしいなと思いまして。
272nobodyさん:2009/10/21(水) 14:52:08 ID:???
それはブラウザ依存だし、Rails関係ない
273nobodyさん:2009/10/21(水) 17:32:30 ID:???
OSXだけの話題ですみません。昨日、Snow Leopardを入れたら、Railsがこけました。
ググると当然のように情報があったので、その通りやってみたのですが、MysqlもSqliteも
動きません。やっぱり、上書きインストールは止めとけばよかったかな。(しかもTigerから)
クリーンインストールしてみて、また報告したいと思います。
274nobodyさん:2009/10/21(水) 21:05:25 ID:???
>273
ただの愚痴ならはてなにでも書けばいいのに。
275nobodyさん:2009/10/21(水) 22:44:47 ID:???
sproutcoreってどうよ
276nobodyさん:2009/10/21(水) 23:32:09 ID:???
なにそれ?

とりあえずググるのめんどくさいから解説しれ
277nobodyさん:2009/10/22(木) 03:15:44 ID:???
マカってホント情報弱者だなw
マクってアンインストールも無いポンコツOSだから大変だwww
278nobodyさん:2009/10/22(木) 08:14:36 ID:???
ごみ箱に捨てるとアンインストールだよ ^ ^
279nobodyさん:2009/10/22(木) 10:21:14 ID:KXOXFRLn
open-uriについて回答有難うございました。試しにRubyでスクリプトを書いてみたのですが、どうも上手くいきません。

require 'open-uri'

open ("http://www.fusokk.co.jp/ir/2009/010.pdf") {|io|
open("fuso_blance_sheet.pdf", "w") {|f|
f.write(io.read)
}
}

上記のコードを実行すると真っ白なpdfファイルが作成されます。また、pdfファイルを画像ファイルに変更しても破損した画像ファイルが作成されます。
open-uriでアクセスしたファイルの正しい保存の仕方(作成の仕方?)を教えて頂けないでしょうか。よろしくお願いします。
280nobodyさん:2009/10/22(木) 10:27:34 ID:???
>>279
Mac(UNIX)で普通に出来たけど、windowsだとバイナリモードとか
意識する必要があるかも。
281nobodyさん:2009/10/22(木) 11:01:09 ID:KXOXFRLn
>>280

バイナリモードでいけました。有難うございます!
282nobodyさん:2009/10/22(木) 11:11:37 ID:???
基礎知識足りなすぎだろ、
こうゆうのを砂上の楼閣・・・・
283nobodyさん:2009/10/22(木) 12:16:08 ID:LmLblO9Z
>>281
Railsやる前にRubyの入門書を一通り読んだ方がよい気がする
284nobodyさん:2009/10/22(木) 12:17:58 ID:???
C言語やれ!
285nobodyさん:2009/10/22(木) 12:48:35 ID:???
アセンブラ学べ
286nobodyさん:2009/10/22(木) 12:54:03 ID:???
まじでアドバイスするとC#あたりがいい
どうしてもRubyでやりたいってことならそれもありだと思うが
ただどの言語やるにしても基本くらい勉強しろ
287nobodyさん:2009/10/22(木) 19:32:24 ID:???
まあrubyの基礎を一通り遣ればいいだけ。いきなりRoRじゃなあ。
288nobodyさん:2009/10/22(木) 21:32:58 ID:???
railsの本はrubyの事はさっと基本的なことは書いてあっても
それなりに使うには言語自体覚えてこなきゃな
289nobodyさん:2009/10/22(木) 21:56:01 ID:???
正直C#の方が素直で憶えやすいと思う
290nobodyさん:2009/10/22(木) 21:57:41 ID:???
自分の勝手なイメージかもしれんけど
多言語でバリバリ書いてる人が
その知識をもとにすいすい書くのがRubyだと思う
291nobodyさん:2009/10/22(木) 21:58:38 ID:???
ミス
×多言語○他言語
292nobodyさん:2009/10/22(木) 22:05:12 ID:???
むしろ、プログラミング初心者とか初学者の方が
Rubyの変態仕様はなじみやすいと思う
C系やってたやつがVBのコード見たら発狂するのと同じ
293nobodyさん:2009/10/22(木) 22:15:00 ID:???
Rubyが変態とかwww
一番素直な言語だと思うんだが
294nobodyさん:2009/10/22(木) 22:21:06 ID:???
柔軟すぎて気持ち悪いって言う人がいるのはまあわかる
295nobodyさん:2009/10/22(木) 22:26:39 ID:???
VBでなぜ発狂するのかわからん。普通にわかるし
Perlあたりでみかけるすばらしく圧縮されたコードならわかるが
296nobodyさん:2009/10/22(木) 22:52:10 ID:???
変数のほうに型がないと不安なんじゃない?
297nobodyさん:2009/10/22(木) 23:17:12 ID:???
CとRubyの基礎的な本は読んだのですが、読み落としがあったり忘れたりしてしまうんですよね。
そこでRailsでアプリを作ればプログラミングも覚えていけると思いました。
Webアプリ以外だとどういうものを作るか思いつかなくて、CやC++は勉強が進んでいないです。。
298nobodyさん:2009/10/22(木) 23:19:31 ID:???
マインスイーパ
次にソリティア
299nobodyさん:2009/10/22(木) 23:23:17 ID:???
>297
100マス計算
計算100 (脳トレに入ってるアレ)
じゃんけんゲーム
数独問題生成
数独を解く

上三つが簡単。

300nobodyさん:2009/10/23(金) 00:46:33 ID:???
英語読んだだけで覚えないだろ?使えないし、しゃべれないし
どんどん使って行かなきゃ名
301nobodyさん:2009/10/23(金) 00:51:03 ID:???
>>297
ちょうどいいサイトがある。
Ruby のサンプルプログラム投稿サイト - Masaru
http://projects.netlab.jp/masaru/

ここにどんどん投稿しろ、いやしてください。(m´・ω・`)m
302nobodyさん:2009/10/23(金) 09:29:47 ID:???
人気のあるサンプルプログラム
1. String#* /
同じ文字列を複数並べて表示する。 47pt | 2008-08-23

(;^ω^)
303nobodyさん:2009/10/23(金) 12:14:31 ID:???
レベル低すぎてワラタ
304nobodyさん:2009/10/23(金) 12:55:13 ID:???
>>303
ばか、>>297用へのリンクだとなぜlogを読まん?
305nobodyさん: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 %>としただけのビューのコードが間違っているのでしょうか?
どなたか教えて頂けないでしょうか。よろしくお願いします。
306nobodyさん:2009/10/23(金) 18:12:39 ID:???
ruby script/server -u
でデバックモードで起動してくれるからログ見ろ
307nobodyさん:2009/10/23(金) 18:22:29 ID:???
HTML間違ってる訳だが
308nobodyさん:2009/10/24(土) 01:13:38 ID:???
リダイレクトしたらフォームの値は消えるだろ。
GETでパラメータ渡すか、セッション使わない限り。

ビューといっているのが、list.html.erb(またはlist.rhtml)なのであれば、
render :action => :list
で動くだろう。
もし、違うファイル名(例えば、name.html.erbとか)だったらそれを指定する必要がある。
309273:2009/10/24(土) 20:56:08 ID:???
ただの愚痴とか情報弱者とかご指摘をいただきました>>273でございます。
Snow Leopardのクリーンインストールをしたところ、問題なく動く
ようになりましたので、ご報告させていただきます。
あちこちに書かれている通り、Mysqlの64ビット版をインストール、
mysql gemを-arch x86_64フラグ付きインストールでうまくいきました。
やっぱり、OSのアップグレードのような作業で手間を惜しむと後でよけいに苦労
することが多いのは世の常ですね。
310nobodyさん:2009/10/24(土) 22:59:57 ID:???
gem入れ直すだけで十分だったのに
311nobodyさん:2009/10/25(日) 05:56:11 ID:???
>>308

パラメータ消えるんですね。知らなかったです。
リダイレクトとレンダーの違いがよく分かってなかったです。
回答有難うございました。
312nobodyさん:2009/10/26(月) 18:27:15 ID:???
マカってホント情報弱者だなw
313nobodyさん: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」でなきゃいけないのだけれどもカラム名の変更はできないという…
できそうなんだけどググっても不明ですどなたか教えて頂けませんか
314nobodyさん:2009/10/27(火) 18:34:14 ID:???
こういうのならば
belongs_to :folder , :foreign_key => "h_id"

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

315nobodyさん:2009/10/27(火) 18:34:38 ID:???
:foreign_key
316313 :2009/10/27(火) 19:15:30 ID:???
>>314
>>315
おおおうああできました!
ありがとうございます。
そうか、foreign_key でカラムに固有名をつけてあげればいい、ということなんですね。
すっかり凝り固まっていて思い至りませんでした。ありがとうございました!
317313 :2009/10/27(火) 19:21:50 ID:???
あああちがう、foreign_keyで外部キー名を指定してあげる、ですね
理解が浅くて申し訳ないです
318nobodyさん:2009/10/28(水) 14:26:55 ID:/NsMtcRB
>>317
そのDBを、新しく作るrailsアプリからしか使わないんだったらマイグレーションでDBの定義変えちゃった方がいいと思うけれど。

foreign_key使うより個人的にはそっちの方がrailsのやり方に沿ってて好き。というかカラムの名前がrailsの命名規則に従ってないのって気持ち悪くない?まぁ人それぞれだと思うけど。
319nobodyさん:2009/10/28(水) 16:11:34 ID:???
そんなこと出来る環境なら誰だってそうするだろ。
既存DB弄れないのはよくあること。
320318:2009/10/28(水) 17:48:49 ID:/NsMtcRB
>>そんなこと出来る環境なら誰だってそうするだろ。
>>既存DB弄れないのはよくあること。
まぁだからもちろん、「そのDBを、新しく作るrailsアプリからしか使わないんだったら」なのだけれど。
313が業務じゃなくて個人的に色々作ってる人のような気がしたので、
だったらDBの定義変更もできるんじゃないかなと思って。なんとなく。
321nobodyさん:2009/10/28(水) 17:57:57 ID:???
質問よろしいでしょうか?

うまくいきません、どうやったらよいものでしょうか?
322nobodyさん:2009/10/28(水) 17:59:40 ID:???
よいよい詳しく申してみなさい
323nobodyさん:2009/10/28(水) 18:00:59 ID:???
すいません、質問の中身書き忘れました・・・

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

どのように実現するのが早いでしょうか?
JavaScriptを絡めないと無理なものでしょうか?
324nobodyさん:2009/10/28(水) 19:55:21 ID:???
>>323
submitを一つのformに複数置く場合、アプリではsubmitを名前で
区別して動作を変えることができる。

結果表示の方だが、確か、formにも target="_blank" を指定できたと
思う。ただし、今回は、一つのformの複数のsubmitという条件なので、
片方のときだけ、実際にサーバにデータを送る寸前にtargetをすり替える
ようなJavaScriptを用意する必要があると思う。
325nobodyさん:2009/10/29(木) 09:41:06 ID:???
>>324
サンクス

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

ありがとうございました
326313 :2009/10/29(木) 11:06:29 ID:???
>>318
>>319
提案とお気遣いありがとうございます。
使用しているDBは別のフレームワークで利用しているもので、
それにRailsで拡張アプリみたいにしてみたかったのでカラムの変更なしが前提でした。
でも本来ならばRails方式に変更した方がいいし、別フレームワークでもRailsと同じ方式でカラム命名ができるので、
Rails側アプリが巨大化する前に手をうとうと思います。
Railsの生産性の高さに元アプリから作り直しそうな勢いですw
327nobodyさん:2009/10/30(金) 02:39:16 ID:???
3.0って1.9.2が出たあとか?来年の4月に洋書で本が出るようだが
2系で作って大幅改修が嫌だから待ってるのだが遅すぎるわ
328nobodyさん:2009/10/30(金) 02:43:45 ID:???
>>327
洋書はどこから出るの?
329nobodyさん:2009/10/30(金) 07:45:24 ID:???
330nobodyさん:2009/10/30(金) 08:21:29 ID:???
ぶっちゃけその3はRails3じゃなくて、本自身の第3版じゃないか?
331nobodyさん:2009/10/30(金) 08:22:43 ID:???
失礼、英語の本のほうはRails 3か。
332nobodyさん:2009/10/30(金) 12:38:37 ID:???
ActeveRecordでupdate_atだけ更新する方法を教えてください
333nobodyさん:2009/10/30(金) 22:40:57 ID:???
>>332
railsのバージョンによって回答数が異なります。
バージョンは何?
334nobodyさん:2009/10/31(土) 06:45:29 ID:???
>>333
2.3.2です
335nobodyさん: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です。
どなたか解決方法を教えて頂けないでしょうか。 よろしくお願いします。
336nobodyさん:2009/10/31(土) 11:17:28 ID:???
>>335
そのエラーてどこのレベルでててるんだろ。
真ん中に赤枠があって、その中にエラー文字列があるなら、Railsがエラーはいているだろうけど

apacheのログ確認してみた?
337nobodyさん:2009/10/31(土) 11:49:10 ID:???
"GET/financial_statenents HTTP/1.1" 404

ログの見方はよく分からないのですが、Railsで用意された404が表示されているみたいです。
338nobodyさん:2009/10/31(土) 12:10:24 ID:???
追加したってのは、Rails.root 直下の public の下にHTMLファイルを
追加したってこと? Railsの機能を追加したってこと?

339nobodyさん:2009/10/31(土) 12:47:05 ID:???
新しいコントローラのクラスと、それに対応するビュー、モデル、データベーステーブルを追加しました。
340nobodyさん:2009/10/31(土) 12:59:55 ID:???
とりあえず、apacheではなくRailsプログラムの問題のようなので、

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

または、

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

などでより詳しい情報を得ることを勧める。
341nobodyさん:2009/10/31(土) 13:34:57 ID:???
何度も申し訳ないのですが、Passengerの設定ファイルってどこにあるのでしょうか?
342nobodyさん:2009/10/31(土) 14:46:41 ID:???
PassengerでRailsEnv指定できました。

Routing Error

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

という表示に変わりました。routes.rbに何か設定を追加すればよいのでしょうか?
343nobodyさん:2009/10/31(土) 14:50:58 ID:???
いいかげんにしろ
344nobodyさん:2009/10/31(土) 15:00:09 ID:???
/financial_satementesというURLでRailsになんらかのアクションを
してほしいなら、あなたが追加したコントローラとそいつのメソッド
がそのURLにマッピングされなければならない。

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

routes.rbに
map.resources :financial_statements とでも書けばいいんじゃない?
345nobodyさん:2009/10/31(土) 15:39:28 ID:???
回答有り難うございます。

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

同じようなURL(/controllername)はマッピング出来ているのに/financial_statementsはエラーになる理由がよく分からないです。。
346nobodyさん:2009/10/31(土) 15:42:24 ID:???
まー、あとは routes.rb の問題ぽいからドキュメントみつつ
rake routes しつつ、試行錯誤してくれい。
347nobodyさん:2009/10/31(土) 19:08:53 ID:???
おまたせしました
質問です
RoRはWindows7で動作しますか?
348nobodyさん:2009/10/31(土) 20:26:19 ID:???
動かないと思います
349nobodyさん:2009/11/05(木) 17:41:39 ID:???
Ruby on Rails解説書の定番"Agile Web Development with Rails"の
日本語最新版『RailsによるアジャイルWebアプリケーション開発 第3版』が、
この2009年11月末にオーム社より発行されます。

ついにでるー.
350nobodyさん:2009/11/05(木) 21:57:32 ID:???
351nobodyさん:2009/11/05(木) 23:41:40 ID:???
Head first railsもRails2.3対応で同時期に出るらしいんだけど,
どっちがいいかな
352nobodyさん: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

クエリキャッシュを有効にしていたのですが
エラーの出現回数があまりに多いので
毎回クリアさせてみたところ多少減りました。
353nobodyさん:2009/11/06(金) 01:47:47 ID:???
そのタイミングでrails3が来たら全員涙目w
354nobodyさん:2009/11/06(金) 03:08:33 ID:???
一度出たら2年くらい出ないから、3系を待ってくれた方がよかったかも
正直2.3系はあまり困ってない
355nobodyさん:2009/11/06(金) 17:55:44 ID:???
質問させてください。

/lib/xxx.rbのモジュールをControllerでincludeして利用しています。
BackgrounDRb(/lib/workers/yyy_worker.rb)でも
xxx.rbのモジュールをincludeして利用したいのですがどうすればいいでしょうか?
356nobodyさん: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
を指定しています。
357nobodyさん: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などは最新バージョンです。

358nobodyさん:2009/11/07(土) 01:01:03 ID:ygEaPrn0
すみません。
@user = Parent.new(params[:data])
ではなく、
@user = Parent.new(params[:user])
だと思うのですが、、、まちがってますよね。。。
359nobodyさん:2009/11/07(土) 02:01:48 ID:???
>>355>>356も、どう困ってるか書いてないのだが同じやつか?
360nobodyさん:2009/11/07(土) 02:36:17 ID:???
自分でも何が分かってないのか分かってないんだろ。
なんかよく分からないけどヒントください、みたいな。
361nobodyさん:2009/11/07(土) 02:36:32 ID:ygEaPrn0
いえ、違う人です。

いろいろ変えてやってみたのですがいろいろなエラーで
収集がつかなくなったので、根本的に、基本的なところで
どう間違っているのか、指摘してもらえればありがたいなーと
思いまして。。(^^;;
362nobodyさん:2009/11/07(土) 02:39:37 ID:???
そのコントローラーに対してどういうアクセスをしたのか、
その結果どういうエラーが出たのか、
具体的に示さないとあかの他人がアドバイス出来るはずないでしょ。
363nobodyさん:2009/11/07(土) 08:13:45 ID:???
何もしてないならコントローラの名前がmain.rbって時点で変。
364nobodyさん:2009/11/07(土) 08:40:04 ID:???
ずーっと使っているとメモリの消費量がすごいことになるんだけど
どうしたらいいの?
いったん再起動するの?
365nobodyさん:2009/11/07(土) 09:14:59 ID:iBTE7BNg
自分の場合、monitなどの監視ツールでメモリの使用量が一定量を超えたら自動で再起動させてる
366nobodyさん:2009/11/07(土) 09:15:41 ID:???
freeしても使用メモリはOSが実際に必要とするまで返還されなかったり
するからとりあえずOSとかいろいろ教えれ。
367nobodyさん:2009/11/07(土) 09:22:59 ID:???
>>364
放っておくと死ぬから頻繁に再起動するしかないw
368nobodyさん:2009/11/07(土) 09:53:27 ID:iBTE7BNg
Passengerの場合は、5分間アクセスがなければプロセスを終了させるとか、1000回アクセスを処理したら終了などの設定ができるので、特にツールを使わなくても再起動できるのでおすすめ。
369nobodyさん:2009/11/07(土) 11:37:51 ID:???
rubyってガベコレしてないの?
370nobodyさん:2009/11/07(土) 12:03:22 ID:???
してるけど、Conservative GCなのでどうがんばっても回収漏れは発生する。
371nobodyさん:2009/11/07(土) 12:07:23 ID:???
>>366
ubuntu 8.04をxp上のvmware playerで動かしてる
メモリの割り当ては512M

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

373nobodyさん:2009/11/07(土) 14:27:25 ID:???
じゃあ再起動しなくていいはずなのに
どうして再起動しないと固まるんだろうw
374nobodyさん:2009/11/07(土) 15:00:41 ID:???
GC以外のところに原因があるからという風に読めるな
375nobodyさん:2009/11/07(土) 16:06:55 ID:???
railsお勧めのレン鯖って存在しますか?
376nobodyさん:2009/11/07(土) 16:36:34 ID:???
メモリリークしまくるのはオブジェクト指向言語の伝統だし。
377nobodyさん: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化するにはどのように書いたものでしょうか?
378nobodyさん:2009/11/07(土) 16:42:07 ID:???
>>375
定評あるのはslicehostかな?
最近なら、Rackspaceとか
379nobodyさん: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 を呼ぶ。
380377:2009/11/07(土) 17:12:43 ID:???
>>379
うほっ!できました、できました!

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

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

今までmoduleの中身はincludeした方のスコープで動くもんだと思ってたw そういうことだったのか
381nobodyさん:2009/11/07(土) 19:06:05 ID:???
>>373
>>じゃあ再起動しなくていいはず
逆。OSには返してないわけだから、基本的にOSから見た
プロセスが食うメモリってのは増える一方。
382nobodyさん:2009/11/07(土) 19:46:08 ID:???
freeしてもOSにメモリを返却するってわけじゃないんだよな。
プロセスのメモリサイズをいじるのはsbrkとかbrkだっけ?
383nobodyさん:2009/11/07(土) 20:08:11 ID:???
>>379
自分には関係ないけど
なるほどーと思った
384nobodyさん:2009/11/07(土) 21:19:04 ID:???
>>379
宣言的に見えるけど、実のところnamed_scopeもただの
メソッドだからな。
385nobodyさん:2009/11/08(日) 02:45:09 ID:???
qmailで受信して、.qmailのパイプ経由で
script/runnerしてメール処理をしてるのだが、
一度受信したメールが何度も繰り返し送られてくる。

これって、こういうものなのかな?
それとも的確な処理をしてないから?
386nobodyさん:2009/11/08(日) 02:58:14 ID:???
受信したら消せよ
387nobodyさん:2009/11/08(日) 03:13:16 ID:???
うそん
388nobodyさん:2009/11/08(日) 03:16:34 ID:???
外部から何度も送られてくるのよ。
受信したメールをコマンドで処理するのみで
保存しないようにしても症状は同じ。

受信したときに相手のサーバに的確なメッセージを
返してあげないとダメなのかな?
そういうのはqmailが勝手にやってくれてると思うのだけど…
389nobodyさん:2009/11/08(日) 10:25:46 ID:???
>>388
> そういうのはqmailが勝手にやってくれてると思うのだけど…

おいおい
390nobodyさん:2009/11/08(日) 11:28:57 ID:???
これがruby厨
391nobodyさん:2009/11/08(日) 14:55:17 ID:???
そんなくれくれruby厨に助言してくれよう。
終了コード0返すだけじゃだめなの?
392nobodyさん:2009/11/08(日) 16:35:04 ID:???
ActiveRecord::Migration.execute('CREATE TABLE hoge (・・・); CREATE INDEX ・・・;')
とかしてもインデックス作られないんだけどCREATE TABLEだけしか実行してくれないの?
393nobodyさん:2009/11/08(日) 18:22:12 ID:???
そんな事はない。
インデックスも正しく作成される。
その前にマイグレーションを使っているのに、わざわざSQLを直接実行するのはなんでだ?
394nobodyさん: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です。
395nobodyさん: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
396nobodyさん:2009/11/09(月) 21:58:57 ID:???
んなもんソース見るまでもなくね?
397nobodyさん:2009/11/09(月) 23:09:34 ID:???
見ないでどうやってしらべんの
398nobodyさん:2009/11/10(火) 04:32:44 ID:???
んなもん調べるまでもなくね
399nobodyさん:2009/11/10(火) 12:23:52 ID:???
初心者スレか本スレに帰れ
400nobodyさん: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とか直したらなんとかなるんかな。
401nobodyさん:2009/11/10(火) 16:15:53 ID:???
「SQL文の条件句に埋め込む数値の表現」なので、
最終的に文字列が得られるようになってるのよ。
402nobodyさん:2009/11/10(火) 16:23:20 ID:???
>>401
ああ、確かにドキュメントに

> Quote strings appropriately for SQL statements

と書いてありますね。

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

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

ありがとうございました。
403nobodyさん: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のプレビュー用のモードというか、プレビューボタンを押した後指定のページ遷移までは
フラグ立てたまま処理する(「プレビュー中です」のような表示をしたい)というような場合や

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

設計の問題なのかもしれませんが、ぜひご助言ください。
404nobodyさん:2009/11/10(火) 22:01:55 ID:???
formならhiddenでいいんじゃね?
405nobodyさん:2009/11/10(火) 22:09:57 ID:???
セッションに保存するのが駄目な理由が分からん。
application_controllerにチェックするメソッド定義して、各コントローラでfilterで呼ぶとか。
filterを工夫すればいいんじゃないの?
406nobodyさん:2009/11/10(火) 22:11:23 ID:???
>>403

例えば、link_toの場合は、こんな感じで書くとGETパラメータを付加してくれる。
formでも同じ事ができるかは分からないが。
<%= link_to("編集", :action => :edit, :id => @item, :params => params) %>
407403:2009/11/11(水) 09:59:21 ID:???
>>405
そういうことが聞きたいのです。

セッションだと、
>>403の下のブログやCMSの例でいえば、プレビューと実際の画面表示のコードを共有していた場合、
プレビュー中に、実際の画面みようとしてもプレビュー表示になってしまいますよね。

食品の記録サイトでいえば、別のタブで同時に別の日を入力しようとしていた場合、
セッションにある値しかつかわれないので、セッションにある日しか同時に入力できないことになります

つまり、セッションだと状態を1つしかもてない、という意味なのですが・・・

ま、仕様です、と言えば、それでもいいのかもしれませんがw

>>406
あ、いえ、今もそんな感じでやってるんです。

>>403のコード例がわかりにくいのですが、
form_tag でGETパラメータを指定しています。
ただし、指定するかは今のページのGETパラーメータを見てから。

>>404
確かにformならhiddenでもいいですね。GETパラメータでやらなくてもいいか
408nobodyさん:2009/11/12(木) 03:49:23 ID:K53v7ACD
ファイルをアップロードするときってform_tagとかfile_fieldを
つかってファイルを選ぶ方法しかないのでしょうか?
クライアントがパスを書いてそこにあるファイルをサーバに保存する
ことは不可能ですか?
409nobodyさん:2009/11/12(木) 04:51:31 ID:???
可能
410nobodyさん:2009/11/12(木) 15:35:06 ID:???
/etc/passwdとか上書き出来たら楽しいね。
411nobodyさん:2009/11/12(木) 15:36:59 ID:???
当たり前のような質問があります。

HogeControllerがあり、publicなメソッドとしてFoobarを新たに追加しました。
デフォルトのルーティングだと、
 /hoge/foobar
でアクセスできるのですが、プログラム上からは
 foobar_hoge_path()
が使えません。

rake routesしても載ってないのですが、
これって、routes.rbに

 map.resources :hoge, :member => { :foobar => :get }

などとかかなくてはいけないものなのでしょうか?
412nobodyさん:2009/11/12(木) 22:47:21 ID:???
find_by_sqlで複数のSQLを実行したとき
返ってきた結果セットがほぼ同時に別プロセスで
実行していた別なSQLのものに変わってしまっています。
mysqlの設定などでチェックすべきところとかないでしょうか?
413nobodyさん:2009/11/12(木) 23:21:24 ID:???
>>411
無指定の map.resources だけだとそこまで面倒みてくれない。
map.resources に追加するか、昔ながらのやり方で

map.foobar_hoge 'hoge/foobar', :controller => 'hoge', :action => 'foobar'

のように定義してやるとか。
414nobodyさん:2009/11/12(木) 23:37:15 ID:???
トランザクションとかストアドプロシージャだろうか
やったことないけど
415411:2009/11/14(土) 04:27:35 ID:???
>>413
ありがとうございます。
こちらでも試してみましたが、やはり、必要なのですね。

>>411のは間違ってまして、/hoge/foobarの場合は、
 map.resources :hoge, :collection => { :foobar => :get }
でした。
/hoge/1/foobarなら、>>411のでいいみたいです。
416nobodyさん:2009/11/17(火) 14:03:16 ID:???
ちょっと聞いていいでしょうか?
psousa's baseapp-orange at master - GitHub
http://github.com/psousa/baseapp-orange

以前でてたBaseAppというRailsのテンプレみたいなのの派生verがあるのを発見して
動かしてみようと思ったんですが、うまく行きません。

READMEにあるように、mysql用のdb設定をdatabase.ymlにして、
rake db:migrate
したのですが、

 Missing these required gems:
  capistrano-ext

と言われてしまいます。
vendor以下を見るとfreezeされているのか、必要なgemなど全部入っているようなのですが、このように言われます。

config/enviroment.rb には、
 config.gem "capistrano-ext", :lib => "capistrano"
のような記述があり、
 rake gems:install
とするのですが、何ごともなく終了します。

どうしたものでしょうか?
417416:2009/11/17(火) 14:16:18 ID:???
>>416 ですが、
ないならgemいれればいいんじゃね?という当たり前の結論で、
 gem install capistrano-ext
したら、無事に通りました。(db:migrateでDBないと言われたので、rake db:createしましたら行けました)

しかし、何でこんな動作になっているのだろう?

なるべくシステムに入っているgemを使いたいのですが、満載のvendor/gems以下や、vendor/rails以下は
手動で削除しちゃっていいものなのでしょうか?
418nobodyさん:2009/11/17(火) 16:12:30 ID:???
rails 2対応の初心者用参考書でお勧めはどれですか?
419nobodyさん:2009/11/17(火) 16:13:42 ID:???
既存のapache管理下のものに影響与えないように導入することはできないのでしょうか
420nobodyさん:2009/11/17(火) 18:37:57 ID:???
>>418
>>350がいいんじゃないかと思う
421nobodyさん:2009/11/17(火) 22:36:49 ID:???
>>419
影響ってどういう意味?
422nobodyさん:2009/11/18(水) 02:13:20 ID:???
restful_authenticationを使ってログイン認証を行おうと思ってるんですが、
画面の遷移がない場合5分経ったらセッションを消してログアウト状態にしたいと思っています。

以前はacts_as_authenticatedを使って、ログインされたらデータベースのsessionテーブルにユーザーの
session情報を保存しておいて、ユーザーが画面遷移をしたら、そのsession情報を更新しておき
5分おきにsessionテーブルを監視して、更新時間が5分以上経ってたらsessionテーブルから削除するようにして
ログアウト状態を再現していました。

restful_authenticationを使う場合は、データベースに値を持たなくても上記のような事ができるのでしょうか?
すみませんが、お知恵をお貸しください。宜しくお願いします。
423nobodyさん:2009/11/18(水) 17:36:25 ID:8qlvL/3i
都道府県のデータをRubyの配列で用意しようと思うんだけど、
どこのファイルにおくのがおすすめでしょうか。

JP_STATES = [
'北海道',
'青森’,
...
]

こんな感じのデータです。
424nobodyさん:2009/11/18(水) 18:51:10 ID:???
Railsアプリのルートディレクトリを表す変数とかありませんか?
425nobodyさん:2009/11/18(水) 22:12:48 ID:???
>>422
restful_authentication自身にはそういった機能はなかったはず。
データベース側をきっちり削除したいなら自前で実装するのがいいだろうね。
クッキーのexpireでいいなら、2.3以降ならActionController::Base.sessionの:expire_afterを指定、
それ以前ならdynamic_session_expプラグインを使えばいい。

>>423
2.0以降なら config/initializers以下に。
それ以前ならconfig/environment.rbやconfig/environment/*.rbに直書きするか
config/以下にファイルを置いてenvironment.rbなどからrequire。

>>424
RAILS_ROOT
426nobodyさん:2009/11/18(水) 22:14:23 ID:???
いまは Rails.root でもOK
427nobodyさん:2009/11/19(木) 00:14:02 ID:???
Wikiみたいなアプリで、文字列をHTMLに変換する処理をParserとしてモデルに切り分けたいのですが
url_forとかhoge_urlとかはモデルから使えないので、リンク生成をどうしたものかと思っています。
config/routes.rbの設定と重複しないために、できればURL生成メソッドで作りたいのですが
どうにかできないでしょうか?
428nobodyさん:2009/11/19(木) 15:24:41 ID:???
>>427
モデルじゃなくて(モデルでもいいけど)、
ふつうのライブラリみたいに lib/以下にParserとしておいて、
コンストラクタでコントローラーのインスタンスを渡す、とかどうだろか

lib/以下に置く時の注意は、moduleにしてRailsが想定する名前の付けか足しておくと、
requireとかしなくても、自動で読んでくれる。はず。
詳しい方きぼん
429nobodyさん:2009/11/19(木) 15:32:45 ID:???
ついでに質問なのですが、FormBuilderやFormHelperを継承せずに拡張したいのですが、うまいやり方ないでしょうか?

今は、
lib/hoge_form_helper.rb として、

module HogeFormHelper
  module FormBuilder
    def my_text_area(method, options = {})
       :
    end
  end
end

上記のように書いて、application_helper.rbにて、

class ActionView::Helpers::FormBuilder
  include HogeFormHelper::FormBuilder
end

のようにして、組み込んでいます。
FormBuilderを書いたら、FormHelperも追加したくなるのが人情というものですが、その場合、
HogeFormHelper::FormHelper を書いて、application_helper.rbに、

class ActionView::Helpers::FormBuilder
  include HogeFormHelper::FormBuilder
  include HogeFormHelper::FormHelper
end
のようにさらにするのが不恰好に見えます。
これらの処理をlib/hoge_form_helper.rb側におけないものでしょうか?
430nobodyさん:2009/11/19(木) 20:01:14 ID:???
rspecでhave_textとかinclude_textが動かなくて困っています。

現象:
get "some_action_name"
response.should include_text("foo")
とすると
expected "foo", got "1"
と表示され、失敗します。
response.should render_template(...) は成功しています。

調べたこと:
自分で調べたところ、p response.body をすると "1" が出力されました。
これはテンプレートがレンダリングされてないのだと思い、テンプレートの中で
$stderr.puts "**** rendered *****"
みたいに入れると、出力されませんでした。

推測:
どうもgetを呼び出しただけだとテンプレートがレンダリングされない?
rspecのチュートリアルだと
ttp://rspec.info/rails/writing/controllers.html
get 'some_action'
response.should have_text("expected text")
とあるので、getだけでいいと思うんですけど、ほかに何か必要でしょうか。
431nobodyさん:2009/11/19(木) 21:37:22 ID:???
>>429
プラグイン化するとか。
結局はincludeするんだけど、vendor/plugins に丸ごと置くだけでよくはなる。
432nobodyさん:2009/11/20(金) 16:48:45 ID:???
Railsで、text2html みたいなヘルパーってありませんでしたっけ?
「rails text2html」でぐぐっても、それらしいのは見つからず。
433nobodyさん:2009/11/20(金) 17:56:43 ID:???
RoRをWindows上で稼動させていてアップローダーを作ったところ
日本語のファイルがUTF-8で生成されてWindows上で文字化けします
ファイルを保存するときにSJISに変換しないといけないのでしょうか?
NTFS自体はUNICODE対応のはずだし
なにかが間違ってるような気がするんです
434nobodyさん:2009/11/20(金) 18:02:42 ID:???
>432
textile とか markdown のこと?

>433
お前が間違ってる
435nobodyさん:2009/11/20(金) 18:55:59 ID:???
form_remote_tagとselect_tagを使ってAjaxで選択リストの値を送りたいのですが、値を受け取るにはコントローラでどのようなコードを書けばよいのでしょうか?
436nobodyさん:2009/11/20(金) 19:17:38 ID:???
>>433
UTF-8で保存するのでもなければSJISで保存するのでもない
UNICODEで保存するんだぞ
437nobodyさん:2009/11/22(日) 03:24:06 ID:???
parentテーブルとchildテーブルがあるとして、
parentモデルにhas_many :childを指定してchlidテーブルに
belogns_to :parentと指定します。
この状態の時に「parent.child.replace = @child」でchildに値をセットして
parent.saveとすると新規登録はされるんですが、更新が上手く行きません。
何か書き方がいけないのでしょうか?それとも仕様でしょうか?
ruby 1.8.6でrailsは2.2.2です。
よろしくおねがいします。
438nobodyさん:2009/11/22(日) 04:51:41 ID:Z6X1KQFW
>>436
UNICODEで保存?
UTF-8/16じゃなく?
439nobodyさん:2009/11/22(日) 06:54:00 ID:???
write open するときに
OpenFileA()じゃなくて
OpenFileW()使えっていう意味では
440nobodyさん:2009/11/23(月) 20:58:50 ID:???
RailsでjQuery使うにはどうするのがよいんでしょうか?
jRailsというのがあったみたいですが、公式サイトなくなってるし・・・

jRails - jQuery on Rails
 http://ennerchi.com/projects/jrails
441nobodyさん:2009/11/23(月) 21:27:37 ID:???
ふつうに <script src=></script> でいいんじゃないの?

442nobodyさん:2009/11/24(火) 00:15:15 ID:???
当方Windowsで開発をしています
ruby script/serverを実行した際に

C:\rails\hello>ruby script/server
=> Booting Mongrel
=> Rails 2.3.4 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server

でコマンドプロンプトが次のWEBRICKが起動した〜などを出力してくれません
Ctrl-Cをしてもサーバーは停止できません
一度だけこの状態で長時間放置したときに
500 Internal Server Error
unknown error
という表示がされました

解決方法がさっぱりわかりません
どなたか解決方法知っている方がいれば教えていただけるとありがたいです
443nobodyさん:2009/11/24(火) 00:38:56 ID:???
こっち最新なんだろうか
http://github.com/aaronchi/jrails
444nobodyさん:2009/11/24(火) 03:53:25 ID:igGLII2V
>>442
まるち
445nobodyさん:2009/11/24(火) 07:33:31 ID:???
>>442
誘導されておきながらそれを書かないからマルチ扱いされる
あと誘導前のスレにも移動する事くらい書いた方がいい
ちなみにMongrelの事は知らないので質問には答えられない
446nobodyさん:2009/11/24(火) 09:45:43 ID:???
>442
もっと詳しく。
エスパーは希少なのでそれだけの情報では足りない。
何が足りないのかは考えろ。
447nobodyさん:2009/11/25(水) 01:38:14 ID:???
知らんがな。
自分で調べる能力無いなら、サポートしてくれる業者を捜すなり、商用ソフトでも使ってサポート受けたら?

http://pc11.2ch.net/test/read.cgi/php/1258187482/
【PHP】下らねぇ質問はID出して書き込みやがれ 90
http://pc11.2ch.net/test/read.cgi/php/1251803164/
【質問】ASP.NETスレ Part6【雑談】
http://pc11.2ch.net/test/read.cgi/php/1222645553/
【 スクリプト改造依頼スレ】(丸投げ) part7再々
http://pc11.2ch.net/test/read.cgi/php/1257701535/
△▲ WebProg 初心者の質問 Part21 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1158647441/
くだらない質問でもど偉そうに聞いていいスレ
448nobodyさん:2009/11/25(水) 16:20:37 ID:???
>>442
何をしたいのか、何を聞きたいのか、意味がわからん。

mongrelをgemで入れている環境なら、script/serverはwebrickではなく自動でmongrelが起動するよ。

webrickを明示的に起動したかったら、 script/server webrick
とかするんじゃなかったかな?調べてみて。

Ctrl-Cは何回かおしたら止まる気はする
449nobodyさん:2009/11/25(水) 16:25:33 ID:???
質問をお聞きします。

viewやヘルパーを書く時に、javascriptのパスを渡したいのですが、
javascrip_path "hoge" などと書くと、
/javascript/hoge.js
というのが得られるのですが、viewでjavascript_include_tagメソッドで得られるように、
/javascript/hoge.js?1259048403
のようなキャッシュしないパスを簡単に得るメソッドはないものでしょうか?

ソースも見ているんですが、どこで付加されているのかイマイチわからんです・・・
450449:2009/11/25(水) 16:51:10 ID:???
実際はlib/以下に配置したモジュール内から、以下のようにして記述しているのですが、
ApplicationController.helpers.javascript_path "hoge"
hoge.js?1235343 のようになってくれません。
Rails consoleで上記を試すとちゃんとついてくれるのですが・・・
451nobodyさん:2009/11/25(水) 17:02:11 ID:???
わからないけど、これは関係あるだろうか
cache_asset_timestamps
452449:2009/11/25(水) 17:24:16 ID:???
>>451
ありがとうございます。

ソースも見ていたのですが、該当箇所はわかりました。
javascript_path→compute_public_pathときて、rewrite_asset_path内で?のあとにタイムスタンプを付加しているようでした。


で実はできねーよヽ(`Д´)ノ ウワァァン!!と思って四苦八苦していたのですが、
別のビューの似たようなページのソースをずっと見ていました orz

正しいページを見たら、ちゃんと
/javascript/hoge.js?1259048403
というようになっていました。

解決しました。
おかげさまでありがとうございました。スレよごしスマソ
453nobodyさん:2009/11/26(木) 11:02:42 ID:S4TWLvc3
454nobodyさん:2009/11/26(木) 17:33:35 ID:???
ぬるぽ
455nobodyさん:2009/11/26(木) 17:50:14 ID:???
Rails 2.3 = Rails 3.0 ってあるけど、そうなの?
456nobodyさん:2009/11/26(木) 19:34:03 ID:S4TWLvc3
457nobodyさん:2009/11/27(金) 00:40:04 ID:???
ossでソースきれいで参考になるプロダクトってある?
458nobodyさん:2009/11/27(金) 16:27:52 ID:uE3HMbl5
rails version 2.3.5 just released.
459nobodyさん:2009/11/27(金) 17:51:25 ID:???
やっとこさrails2系に慣れてきたのにrails3とかワロス
460nobodyさん:2009/11/27(金) 18:43:36 ID:???
config/locales/ja.ymlを作って
ja:
 Hello: こんにちは
と書いた。あとconfig/environment.rbに
config.i18n.default_locale = :ja
を追加した。それでも ruby script/console を実行して
irb> I18n.t('Hello')
=> "translation missing: ja, Hello"
となる。
何が足りない?誰か助けて。
461nobodyさん:2009/11/27(金) 18:59:16 ID:???
>>460
サンプルの config/locales/en.yml にあるキーは小文字の hello なんだが、
YMLに小文字で書いて呼び出しで大文字のHelloを使っているのではあるまいか?

462nobodyさん:2009/11/28(土) 00:57:41 ID:???
>>460

config/locales/ja.ymlは、このようになっていないと動かない。
この状態で、I18n.t("hello")で翻訳される事を確認した。
-----------------------
ja:
hello: こんにちは
-----------------------

単に、hello: の行だけでは動かなかった。
たぶん、そのあたりじゃない?
463462:2009/11/28(土) 01:06:47 ID:???
あ、ごめん。
よく見てみたら、>>460もちゃんと書いてたね。

ちなみに
ja:
hello: こんにちは(hello)
Hello: こんにちは(Hello)

って書いたら、こうなったので全部小文字で書かないといけない
という事はなさそう。
>> I18n.t("hello")
=> "こんにちは(hello)"
>> I18n.t("Hello")
=> "こんにちは(Hello)"

確認したrailsのバージョンは2.3.4。
464nobodyさん:2009/11/28(土) 01:21:36 ID:???
>>463
全部小文字で書かないといけないというわけではなく、
ファイルでしたキーとコードから参照したキーが違ってるんじゃないかという
指摘だと思う。
ただのYAMLで定義したHashだし。
465nobodyさん:2009/11/28(土) 17:18:18 ID:gofPBBCV
466nobodyさん:2009/11/30(月) 00:11:03 ID:???
>>198
> 教祖がデビアンで開発してるから、

そのわりにパッケージが古いんだよな。
railsはgemで入れるとしてrubyがいつもチョット古いのが面倒だ。
467nobodyさん:2009/11/30(月) 03:07:01 ID:???
>>466
sidも古いの?
468nobodyさん:2009/11/30(月) 15:32:02 ID:???
<%=h foo.bar.name.blank? ? '-' : foo.bar.name %>
というのが頻繁にでてくるので、ヘルパーメソッドを定義したい。
def default_val(val, default='-')
 val.blank? ? default : val
end

・質問1: すでにこのようなメソッドはありますか?
・質問2: いいメソッド名があれば教えてください。
469nobodyさん:2009/11/30(月) 16:49:47 ID:???
1: ないと思う
2: value_or_default(foo.bar.name) とかどうだろ
470nobodyさん:2009/11/30(月) 18:24:46 ID:???
>>469
さんくす。
できればもうちっと短い名前がいいんだが。いいのがないものか。
471nobodyさん:2009/11/30(月) 19:20:53 ID:???
#blank? になるものが常に偽とみなせるなら foo.bar.name || '-' でいいんだけどねー。
"" とか [] は #blank? になるけど真だからなあ。


472nobodyさん:2009/11/30(月) 20:45:02 ID:???
blank?で判断する || 演算子が欲しくなるな。
473nobodyさん:2009/11/30(月) 21:33:41 ID:???
StringとNilClassにorってメソッドを・・・
474nobodyさん:2009/12/01(火) 11:59:14 ID:???
Rails初心者です。
fixturesは使わずに手軽にテストデータを入れようと、
勝手データテキストファイルと勝手スクリプトを書いて、
/db/migrateに両方起きつつ、NetBeans上からファイルを実行してみたのですが
ファイル読み込みの時点でNo such file or directoryとなってしまいます。
そこで質問ですが、
●このデータにアクセスさせるためにはどう書くべきですか?
●データ投入はfixturesを必ず使うべきですか?
よろしくお願いします。
475nobodyさん:2009/12/01(火) 19:09:38 ID:???
>474
知るか
476nobodyさん:2009/12/02(水) 11:16:20 ID:???
>>474
・Rails環境を利用した勝手スクリプトはscript/runner経由で使う

他なにかあったけ。
477nobodyさん:2009/12/02(水) 11:18:43 ID:???
>>474
あと必ずしもfixtureということもないと思う。

Rails 2.3.4では初期データの投入はseeds.rbを使うことが推奨されるみたいだよ

Rails アプリの初期データを設定する機能 - takihiroの日記
http://d.hatena.ne.jp/takihiro/20090906/1253523597
478nobodyさん:2009/12/02(水) 11:21:25 ID:???
479nobodyさん:2009/12/02(水) 11:38:12 ID:???
Rails 2.3.5来てるな。
セキュリティfixあるからいれろ

Riding Rails: Ruby on Rails 2.3.5 Released
http://weblog.rubyonrails.org/2009/11/30/ruby-on-rails-2-3-5-released

hなくてもエスケープするRailsXssプラグインが便利そうだ。生中出しするときはrawつける
480nobodyさん:2009/12/02(水) 14:31:45 ID:???
フォームを入力してSubmitボタン→「ありがとうございました」ページ
というのをつくったのですが、ありがとうございましたページでブラウザの戻るボタンを押し、
再度Submitボタンを押すと、同じデータが送信されてしまいます。
これは二重サブミットと呼ばれているそうですけど、これを防ぐにはどうするのがいいんでしょうか。
よさげなプラグインとかありましたら教えてください。
481nobodyさん:2009/12/02(水) 18:39:32 ID:???
RailsによるアジャイルWebアプリケーション開発第3版
買ったぞ。改訂版だから当然だけどパっと見で2版とほとんど内容変わらず…
2版で見慣れたスクリーンショットやコラムがそのまま載ってる。
これからじっくり読んでみよう
482nobodyさん:2009/12/03(木) 00:03:06 ID:???
>>480
rails トランザクショントークンでググれ
483nobodyさん:2009/12/03(木) 05:28:57 ID:???
>>480 >>482
これで簡単にいけそうだな

Railsでトランザクショントークン(ダブルサブミット、2重登録対策)を使う - diaの備忘録
http://d.hatena.ne.jp/DianthuDia/20080911/1221140796
484nobodyさん:2009/12/03(木) 09:20:01 ID:???
ちょっと質問があります。

Rails 2 ではDBに保存する日時はdatetimeはUTCになっててますよね。
日のデーダだけDBに保存したい、扱いタ場合どうするのがよいのでしょうか?
何時(datetime)、ではなく何日(date)ということです。

UTCの日時から何日かデータを取り出した場合、時間の情報がなくなって、
時差情報が欠落してしまいます。

たとえば、日本時間だとUTC+9ですが、
UTCで2009-12-01 23:00のdatetimeから、
日付をDBに保存しておきたい場合、日本時間に変換し(2009-12-02 8:00)、日付にし(2009-12-02)DBに保存する?

こういう場合はどうするのがセオリーなんでしょうか?
そもそも、date使わずdatetimeのまま(UTCまま)DBとかに入れてしまう?でも変だな??

想定としては、date:datetimeと count: integerで日付と数値を次々と入力していったものを
日付別のデータにして保存したい(例えばデイリーの累積グラフにしたり)という場合の話です。
485484:2009/12/03(木) 09:23:29 ID:???
想定がわかりづらくてすいません。

UTC 2009-12-01 12:00, 100
UTC 2009-12-01 23:00, 100
UTC 2009-12-02 1:00, 100

というデータがあって、

2009-12-01, 200
2009-12-02, 300
という累積したデータを保存しておくというのを想定しています。
486nobodyさん:2009/12/03(木) 11:36:12 ID:???
色々と酷くて答えようがない
487nobodyさん:2009/12/03(木) 12:44:15 ID:???
>>485
この場合、UTCで集計してるんだから、
日付もUTCにせざるを得ないんじゃないの。
488nobodyさん:2009/12/03(木) 15:51:32 ID:???
そもそもローカルタイムで格納するつもりはないの?
config.active_record.default_timezone
489nobodyさん:2009/12/04(金) 00:25:22 ID:???
ローカルはあとで困ると思うよ。utcを変換して使っておいたほうがいい。
490nobodyさん:2009/12/04(金) 01:35:49 ID:???
>>485
UTCで保存する必要がないなら、config/environment.rbにある
config.time_zone = 'UTC'
この行をコメントアウトするか、削除すればローカルタイムで保存される。

>>489
UTCで保存して得した事なんて一度もないんだが、
どういうケースで役に立つの?
また、どういう場合に困るの?
491nobodyさん:2009/12/04(金) 08:40:19 ID:???
>>490
国際的なアプリでユーザーの指定したタイムゾーンに合わせて
時間を表示するような場合は、ローカルタイム基準だと
話がややこしい。
どこからでも使われる可能性があるなら場所には依存しないほうが楽。
492nobodyさん:2009/12/04(金) 11:43:43 ID:???
>>490
自分(or特定の相手=日本人)しか使わないならそれでいい
不特定多数相手なら考えを改めた方が良い
493nobodyさん:2009/12/04(金) 18:21:14 ID:???
質問させてください。

Controllerってどのように分けるものなんでしょうか?

例えば、ショッピングサイトだったら、
ログイン、ログアウト部分、カート部分、購入部分みたいに機能別でしょうか?

作成しているアプリは規模も小さいので、
Controller一つでもできそうなんですが、
後から見たときに管理しやすい形にしたくて。
494nobodyさん:2009/12/04(金) 19:05:57 ID:???
設計次第だし、一般論で答えろといわれてもそりゃ無理だ。
質問が曖昧で答えようが無い。
modelと必要機能の一覧ぐらいは示してくれ。
495nobodyさん:2009/12/05(土) 02:24:29 ID:???
実際rorでショッピングサイトなんて組まないと思うよ。決裁の認証が通らないと思う。
496nobodyさん:2009/12/05(土) 07:46:07 ID:???
>>495
ほう。お?なに?誤爆?
497nobodyさん:2009/12/05(土) 16:59:31 ID:???
PHPの方がマシだな
Railsで重要な個人情報を扱うこと自体が怖い
簡易SNSとか個人で使うブログとかもっと軽いノリで作る時にしか使わない
498nobodyさん:2009/12/05(土) 17:13:02 ID:???
意味が良くわからん。
開発者のセキュリティを考慮する能力しだいであって言語関係ないだろ。
499nobodyさん:2009/12/05(土) 17:15:36 ID:???
>>497のレベルが低いことだけは理解しました
500nobodyさん:2009/12/05(土) 17:23:34 ID:???
釣りにしてもレベル低過ぎワロタ
501nobodyさん:2009/12/05(土) 19:24:59 ID:???
>>498-500
IPAという法人がいましてね
502nobodyさん:2009/12/05(土) 20:30:01 ID:???
>>501
IPAがどうした?
IPAはRuby/Railsに関する調査報告書を発表してる事は知っているし、
その内容はRailsを否定するものではない。

それからPHPについては、明らかに無関係だろう。
PHPなら問答無用でセキュリティに問題のないアプリケーションが出来上がるのか?
そんな訳があるまい。セキュリティは言語の問題ではなく、開発者側の問題だ。
503nobodyさん:2009/12/05(土) 22:08:48 ID:???
>>502
IPAがPHPディスってんのは有名な話だけど、そのことなのかな?

IPA ISEC セキュア・プログラミング講座:Webアプリケーション編 第1章 総論:より良いWebアプリケーション設計のヒント
http://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/003.html
504nobodyさん:2009/12/05(土) 22:30:14 ID:???
セキュリティが言語選択とは無関係って頭悪すぎだろ
505nobodyさん:2009/12/05(土) 22:35:11 ID:???
いや、PHPとRubyの2つで考えた場合、
どちらかを選べばセキュリティの問題が解決するってわけではない
という事でしょう。
利用する側がセキュリティに対する意識をしっかり持って開発しないと脆弱なシステムが出来上がる。
506nobodyさん:2009/12/05(土) 23:26:46 ID:???
PHPのフレームワークに比べて
Railsってセキュリティホール多い印象がある
507nobodyさん:2009/12/05(土) 23:49:22 ID:???
508nobodyさん:2009/12/05(土) 23:55:51 ID:???
印象だけで語られてもな・・・
ソースとかないの?
509nobodyさん:2009/12/06(日) 00:32:13 ID:???
馬鹿は伝染るから気を付けよう
相手をしてスレのレベルが下がっていく様を何度も見てきただろう?
510nobodyさん:2009/12/06(日) 15:27:04 ID:???
印象も何もChangeLog見れば分かるだろ
511nobodyさん:2009/12/06(日) 17:50:02 ID:???
お前がchangelogのどのあたりを言ってるのかわからない
512nobodyさん:2009/12/06(日) 19:37:48 ID:eFQH73Wn
Rails 3
http://railsnotes.com/rails-3/
[Last Updated: Nov 24th, 2009]
513nobodyさん:2009/12/06(日) 21:51:40 ID:???
Rails2からだいぶ変わるのかなぁ
やっと2系に慣れてきたのにマジでだるいー
514nobodyさん:2009/12/06(日) 22:07:39 ID:???
どうせならGUI環境にも力入れてほしいわ
NetBeansでも良いけど
515nobodyさん:2009/12/06(日) 22:44:15 ID:???
IDEは別口だろう…
516nobodyさん:2009/12/07(月) 00:02:15 ID:???
>>476-478
かなり亀ですが、レスありがとうございました。
独自のモデルメソッド?を作ってコントローラから呼ぶみたいなことしてました。
seed.rbはまだ試してないので、今度機会がある時はそちらを利用してみます。
ありがとうございました。
517nobodyさん:2009/12/07(月) 02:27:18 ID:???
楽天がRoR使うって言ってたな
518nobodyさん:2009/12/07(月) 03:43:32 ID:???
いや、すでに使ってるよ。
Ruby会議2009ではスポンサーにもなってるし、Railsに関する発表も行った。
まぁROMA(楽天が開発したKVS)の宣伝も兼ねてたと思うけど。
519nobodyさん:2009/12/08(火) 01:59:02 ID:???
winでrailsで並列処理って出来ませんか?
backgroundrbはwin対応していないらしく・・・

サーバにファイルアップロードして、進捗を表示したい。ここはAJAXかな。
しかも並列処理でファイル変換処理の優先度を設定したい。

力技でやるとしたら、
ファイルかDBに変換処理情報書き出して、WINのタスクで実行して、
出来たファイルのサイズ監視して進捗を返すぐらいしか思いつかない・・
520nobodyさん:2009/12/08(火) 02:28:49 ID:???
>>519
Threadでごりごりやればなんとかなるんでない
521nobodyさん:2009/12/08(火) 22:41:01 ID:???
>>519
win32-serviceを使って変換処理を常駐させておいて、
Railsアプリと変換処理をdRubyでつなぐ、とか適当に考えてみた。
522nobodyさん:2009/12/09(水) 02:23:11 ID:EO2jQSYV
523nobodyさん:2009/12/09(水) 08:57:42 ID:???
>>519
ファイル進歩具合なら、それは単にAJAXで出来そうな気がするが・・・
開発用サーバーで一個しか立ててないなら、他の処理はできないかもしれないが
524nobodyさん:2009/12/09(水) 08:59:29 ID:???
てか、>>204にヒントがありそうだ。
・自前のDRbサーバをrunnerで動かす
・kovyrin's loops at master - GitHub
http://github.com/kovyrin/loops
525nobodyさん:2009/12/09(水) 15:46:47 ID:???
mod_proxy_balancerとmongrelを使っています。
mongrelが起動していないときは
Service Temporarily Unavailable
というページが出るんですが、これをカスタマイズするにはどうしたらいいでしょうか。
やりたいことは、「現在停止中です。再開見込みは何時何分です。」というメッセージを出すことです。
526nobodyさん:2009/12/09(水) 16:56:42 ID:???
>>525
mod_〜〜てことはapacheがフロントエンドだと思うんだけど、apacheの設定で503表示をカスタマイズすればいいんじゃまいか?
527nobodyさん:2009/12/09(水) 17:11:13 ID:???
質問させてください。

Userモデル
Unkoモデル

があった場合、UserがUnkoごとにそれを所持しているかの状態を保持するためにUserUnkoPossesionモデルを作りました。
ユーザーのうんこ所持状態で、カラムは has_unko:boolean、user:references、unko:references です。

このような状態で、
  unkos = Unko.all
  user = my_user
のようにunkosと現在のuserがある場合、下記のように各unkoごとに
userがhas_unkoでunkoを持っているかどうかで場合分け処理したいのですが、
どのように書くのがスマートなものでしょうか?

unkos.each do |unko|
  :
end

Rails guideのassociationsを見ていたのですが、いまいちスマートな方法がわからず・・・
associationは以下のように書いています。

class UserUnkoPossesion < ActiveRecord::Base
  has_many :user_unko_possesions
  has_many :users, :through => :user_unko_possesions
end

class UserUnkoPossesion < ActiveRecord::Base
  belongs_to :user
  belongs_to :unko
end
528nobodyさん:2009/12/09(水) 17:12:25 ID:???
>>527
下の方がミスってました。スマソ

class Unko < ActiveRecord::Base
??has_many :user_unko_possesions
??has_many :users, :through => :user_unko_possesions
end

class UserUnkoPossesion < ActiveRecord::Base
??belongs_to :user
??belongs_to :unko
end
529nobodyさん:2009/12/09(水) 18:06:20 ID:???
RailsをSubversionで共同開発する場合ってgenerateで作成したファイル一つ一つにsvn addするんですか?
530nobodyさん:2009/12/09(水) 18:29:28 ID:???
>529
$ script/generate xxx -c ... で作る。gitは -g
generateを引数無しで実行してみよう。

railsコマンドでも
$ svn co testapp (空)
$ rails -c testapp
$ cd testapp
$ svn commit
とか。

531529:2009/12/09(水) 19:02:19 ID:???
>>530
ありがとうございます!
まさに望んでた機能でした。Railsに抜かりなしですね
532nobodyさん:2009/12/10(木) 08:22:58 ID:???
ActiveMailerでのメール送信がうまくいきません。
ログには
Sent mail to [email protected]
とあるので、ActiveMailerがメールを送信しようとしていることはわかりました。
ただActiveMailerが内部でどのようなコマンドを使ってメールを送信しているのかが
わからず、困っています。

ActiveMailerでメールが送信できないときに、どのような点をチェックしたらいいのか教えていただけないでしょうか。
たとえばsendmailが使えるか、とか。

533nobodyさん:2009/12/10(木) 09:22:43 ID:???
ActionMailerは、自分でSMTPをしゃべる(net/smtp)ことも、
外部のsendmailコマンドに任せることも出来る。

設定はこのへんか。
config.action_mailer.delivery_method = :test | :smtp | :sendmail
config.action_mailer.sendmail_settings = {
  :location => '/usr/sbin/sendmail',
  :arguments = '-i -t'
}
以上リファレンスより。
534nobodyさん:2009/12/10(木) 11:27:09 ID:???
初学者に対してIDEはどれがおすすめですか?
エディタ+コンソールで十分だとは思いますが、もしおすすめがあれば教えてください。
535534:2009/12/10(木) 11:30:11 ID:???
連投すみません。
もしくは、開発に何を使われていますか?
良いところも含めて教えてもらえるとありがたいです。
536nobodyさん:2009/12/10(木) 11:39:33 ID:???
初学者は何使っても同じ。ツールの使い方で悩む。
自分が持ってる本に載ってるやつにしとけ。
537nobodyさん:2009/12/10(木) 12:17:29 ID:???
IDE慣れしてるならNetBeans使った方がいいと思うなあ
デバッグ楽ちんだし
538nobodyさん:2009/12/10(木) 13:57:45 ID:???
>>533
ありがとうございます。
ActiveMailerが内部でどういうコマンドをどういうオプションつきで起動しているか、調べる方法はありますか。
現在以下のような設定を行なっているのですが、うまくいきません。
ActionMailer::Base.delivery_method = :sendmail
ActionMailer::Base.sendmail_settings = {
:location => '/usr/sbin/sendmail',
:arguments => '-i -t',
}

現象としては、フォーム入力を受け取ってデータを作成し、そのときにObserverを使ってメール送信するようしています。
しかし実際にフォームを送信すると、HTTPレスポンスが返ってこずタイムアウトします。
どこでエラーになっているのかがまるでわからず、ActiveMailerのソースを読んでいるんですけど。。。わかりません。
539nobodyさん:2009/12/10(木) 14:00:10 ID:???
sendmail のログを見たらいいんじゃね?
540nobodyさん:2009/12/10(木) 14:02:07 ID:???
そもそも delivery_method = :test ではうまくいってるのかな。
どうなったか書かれていないからそこからきかにゃならん。
541nobodyさん:2009/12/10(木) 16:16:30 ID:???
>>534-536
NetBeans使ってるよ。

Eclipse + aptanaもあるが、あれは重くてかなわんなw
542nobodyさん:2009/12/10(木) 16:23:27 ID:???
debian + emacs + rinari + yasnippet
543534:2009/12/10(木) 17:25:42 ID:???
>>542
emacsで開発とか憧れです。

Aptana重いですよね。やっぱりnetbeansですかね。イマイチ使いこなせてない…。
544nobodyさん:2009/12/10(木) 20:46:43 ID:???
ブラウザの戻るボタンを使わせないために、ブラウザにキャッシュをさせないようにしたいのですが、うまくいかないので相談にのってください。

あるページをブラウザにキャッシュさせたくなくて、以下のようにしました。
hdr = response.header
hdr['Cache-Control'] = 'no-cache'
hdr['Pragma'] = 'no-cache'
hdr['Expires'] = 'Thu, 01 Dec 1994 00:00:00'
キャッシュさせたくない理由は、ページを遷移したあとで、ブラウザの戻るボタンを使わせたくないためです。
それで、上のコードでうまくいくかと思ったのですが、うまくいかなくて困っています。つまり、戻るボタンで戻れてしまいます。

Firefox の Live HTTP Headers で見てみると、
Pragma: no-cache
Cache-Control: private, max-age=0, must-revalidate
Expires: Thu, 01 Dec 1994 00:00:00
というヘッダが出力されてました。なんか、Cache-Controlヘッダが書き変わっているんですが、こんなものでしょうか。

なお環境は Rails 2.3.4、Apache 2.2.13、mod_proxy_balancer + mongrel_rails 1.1.5 です。

よろしくお願いします。
545527:2009/12/10(木) 20:58:13 ID:???
class Unko < ActiveRecord::Base
  has_many :user_unko_possesions
  has_many :users, :through => :user_unko_possesions

  # 現在のユーザーが持っているかどうかを返す
  def is_selected_by_user
    possesions = user_unko_possesions.find_by_user_id(User.my_user)
    return possesions ? possesions.has_unko : nil
  end
end


Unko.all.each do |unko|
  puts "#{unko.name} is YOUR UNKO!!" if unko.is_selected_by_user
end

とかやってみたのですが、ループの度にSQLでfind_by_user_idが走るなど、
富豪的なのですが、もっとよい書き方はないのでしょうか?
546527:2009/12/10(木) 20:59:16 ID:???
>>545
is_selected_by_userじゃなかった。has_unko_by_userメソッドでしたミス失礼・・・
547nobodyさん:2009/12/10(木) 22:55:20 ID:???
unkos = Unko.all(
:select => 'unkos.*, user_unko_posessions.user_id',
:joins => 'JOIN user_unko_posessions ON user_unko_posessions.unko_id = unkos.id')

とすると、それぞれの unko に user_id がついてくるぞ。文字列としてだけど。

548nobodyさん:2009/12/10(木) 23:03:15 ID:???
unkos = Unko.all(:include => :users) ??
549nobodyさん:2009/12/12(土) 00:19:41 ID:???
>>544
キャッシュさえしなければ「戻る」を使えないように
できると思ってるの?
550nobodyさん:2009/12/12(土) 01:19:06 ID:???
というかアプリケーションからブラウザのそんなコアな機能を制御出来るの?
551nobodyさん:2009/12/12(土) 03:46:46 ID:???
キャッシュしないなら、もう一度取りにくるだけだしな。
プロパや組織のネット管理者に、間に勝手に通過型プロクシ埋め込まれてキャッシュされる事も有るし、無視するブラウザも居るし。
フラッシュかアプレットかジャバアプリかドトネトアプリで、ブラウザに頼らずに自前で制御するしか無いよ。

http://pc12.2ch.net/test/read.cgi/tech/1252243498/
うーたんブラウザを作るスレ00001
http://pc12.2ch.net/test/read.cgi/tech/1023546699/
Geckoベースのブラウザを作ろう。
552nobodyさん:2009/12/12(土) 08:15:13 ID:???
全部のページに
戻るボタンからアクセスされたら
元のページにForwardするjavascriptを埋めておく
553nobodyさん:2009/12/12(土) 10:37:46 ID:???
urlに?yymmddhhmmssとか現在時刻のライムスタンプつけたらキャッシュされないんじゃないかな?
自分は、よく更新されるファイルをこれで最新版返すようにしたよ。
554nobodyさん:2009/12/12(土) 11:08:16 ID:???
ちゃんとよく読んでレスしろよ

なんで戻らせたくないのかは書いてないが、
戻るボタンを押すとなんたらかんたらってメッセージが出るからじゃないのか?
555527:2009/12/12(土) 12:40:11 ID:???
>>547-548
ああ!そういうときにjoinsとかinclude使うのか。
SQLとかの知識少ないせいか最初、意味分からんかったw

サンクサンクス 試してみます
556nobodyさん:2009/12/12(土) 12:42:12 ID:???
銀行の利用者用ページだと戻るおしたら戻った先で、表示できないことあるけどそういうことか?
557nobodyさん:2009/12/12(土) 18:09:44 ID:???
amazonとか注意してないと同じもの二つ注文してたりするよな
558nobodyさん:2009/12/13(日) 19:52:52 ID:???
そういうのはゴニョゴニュして検出するべきだけどね。
商用フレームワークとかだと当たり前に機能有ったりする。rorなら自前で用意するしかない。
金融系はちゃんと検出して、戻るボタンが押されましたとか表示するね。
559nobodyさん:2009/12/13(日) 23:56:52 ID:???
そういう細かいケアをするのって日本くらいでは。
ユーザを無能のクレーマーと想定して作るのが生産性下げてると思う。
560nobodyさん:2009/12/14(月) 00:11:20 ID:???
どうせいくら防御しても、ユーザーはとんでもないことやらかしてくれるからなー。
ダグラス・アダムスの警句は真だ。


561nobodyさん:2009/12/14(月) 01:29:59 ID:???
金がらみのシステムとブログシステムとかは考え方を変えないと
562nobodyさん:2009/12/14(月) 02:24:38 ID:???
>>559
なわけない。
http://www.google.co.jp/m/search?hl=en&q=Evil+Back+Button

日本人が気にするようなレベルはその先の話。
つまり「◯◯で大丈夫ですよ」と言われたら米国人は安心するが、
日本人はその処理の信頼性を調査する。
563nobodyさん:2009/12/14(月) 14:08:42 ID:o/Pytjxa
>>558
>金融系はちゃんと検出して、戻るボタンが押されましたとか表示するね。

戻るボタン自体は受け付けてくれないと
本当に戻りたいときに困るよなぁ
564nobodyさん:2009/12/14(月) 14:28:04 ID:???
もともとのページ遷移モデルが間違ってるんだよな
ajax でページ移動が一切起こらない設計にするべき
565nobodyさん:2009/12/14(月) 18:20:43 ID:???
このスレで言うのもなんだが、WebアプリはSilverLightとかFlashとか、
バイナリにしてしまった方がいいと思うんだ。
566nobodyさん:2009/12/14(月) 18:40:53 ID:???
>>565
バックエンドはRailsにすればこのスレの範疇w
全部Flashでもいいと思うが一般のwebサービスだとpermalinkとかないとちょっと困るな
567nobodyさん:2009/12/14(月) 18:47:01 ID:???
質問があります。

認証プラグインAuthlogicを勉強してみた - MothProgのうしろがわ
http://d.hatena.ne.jp/mothprog/20090331/1238494900#c

Authlogicを入れてみているのですが、こちらのページでは下記のように
current_userのような現在のユーザーを取得する処理をapplication_controllerにおいています。

  def current_user
    return @current_user if defined?(@current_user)
    @current_user = current_user_session && current_user_session.user
  end

上記のように書いてみてうまく行ったのですが、
別のモデルからこのメソッドにアクセスしたいため、Userモデルに置きたいと考えています。

しかし、モデルに置いてUser.current_userなどのように取得する場合、

def current_user
return @@current_user if defined?(@@current_user)
@@current_user = current_user_session && current_user_session.user
end

などのようにクラス変数に格納するようにすると何故かうまく動作してくれません。
たぶん、Railsのサーバーの場合、モデルのクラス変数が初期化されないのだと思うのですが、
この場合の対処法はありませんでしょうか?
568534:2009/12/14(月) 18:49:03 ID:???
>>566
今はPermalink大丈夫。
569567:2009/12/14(月) 18:49:37 ID:???
すいません下のコード間違えました…

def self.current_user
  return @@current_user if defined?(@@current_user)
  @@current_user = UserSession.current_user_session && UserSession.current_user_session.user
end
570534:2009/12/15(火) 12:11:56 ID:???
「Railsによるアジャイル〜」の内容が本当にアジャイル過ぎて内容が理解しにくい…。
571nobodyさん:2009/12/15(火) 17:23:18 ID:???
Railsで、クッキーが有効かどうかを調べる方法ってありますか。
572nobodyさん:2009/12/15(火) 23:01:42 ID:???
それは Rails じゃなくて javascript の話です。
573nobodyさん:2009/12/15(火) 23:48:27 ID:???
HTTPだけでやるには、最初にリクエストが来たときにクッキーを食わせて、
仮ページにリダイレクト、クライアントが改めてリクエストしてくるときに、
リクエストにそのクッキーが入っているかを見る。
で、必要なら仮ページから元のページにリダイレクトし直す。

とかだろうか?

574nobodyさん:2009/12/16(水) 00:52:24 ID:???
>>572
おいおい・・・
575nobodyさん:2009/12/16(水) 00:55:11 ID:???
>>573
仮ページを介さずとも同じところにリダイレクトでいいよーな気がする。
576nobodyさん:2009/12/16(水) 11:59:09 ID:???
ページ推移をゴニョゴニョすればいい。
商用フレームワークなら当たり前についてる機能だ。
rorは自力でがんばれ。

フラッシュは最近もセキュリティの問題が発見されたし脆弱過ぎる。企業とか無効にしてる所も多いしな。後はアイフォンが非対応でマカが騒ぐとか。グーグル携帯使えでおkだが。
577534:2009/12/16(水) 16:10:13 ID:???
何この「商用フレームワークうんぬん」の人気持ち悪い
578nobodyさん:2009/12/17(木) 15:02:21 ID:???
>>577
同感
579nobodyさん:2009/12/17(木) 15:38:45 ID:???
FastCGIが嫌われてる理由がよくわからない
580nobodyさん:2009/12/17(木) 16:53:09 ID:???
Railsとmod_proxy_balancerについての質問です。

現在、あるサイト (http://www.foo.com) をRailsでつくりました。
で、それの管理画面を https://securesite.com/foo/admin にしようとしています。
そのために、以下のような設定をhttpd.confに追加しました。

ProxyRequests Off
ProxyPass /foo/images !
ProxyPass /foo/stylesheets !
ProxyPass /foo/javascripts !
ProxyPass /foo/ balancer://railsapp/
ProxyPassReverse /foo balancer://railsapp/
<Proxy balancer://railsapp>
BalancerMember http://127.0.0.1:8000 loadfactor=20
BalancerMember http://127.0.0.1:8001 loadfactor=20
</Proxy>

これで動くようにはなったんですが、問題があります。
(つづく)
581nobodyさん:2009/12/17(木) 16:56:09 ID:???
(つづき)

https://securesite.com/foo/admin/ にリクエストがあった場合、
 Rails には /admin/ へのリクエストとして届くようです。
 そのため、'/foo' は無視して
   class AdminController < ApplicationController
    def index
    end
    ...
   end
   map.resources :admin
 とする必要があります。

・しかしこれだと admin_path() が '/admin' を返すのです。
 そうではなくて admin_path() は '/foo/admin' を返すようにしたいのですが、できますか。

・あるいは、Railsでは
  map.namespace :foo do |x|
   x.resources :admin
  end
 として、mod_proxy_balancerのほうで http://securesite.com/foo/admin へのアクセスを
 Rails に /foo/admin へのリクエストとして渡せることができればいいんですけど、
 Apacheのマニュアル読んでも分かりませんでした。そんな設定を知っている人がいたら教えてください。
582nobodyさん:2009/12/17(木) 23:10:49 ID:???
「Rails サブディレクトリ」で検索したらいろいろ出てくるけどこういうのと違う?
サブディレクトリ下で Rails 2.3 を動かすときの注意点
http://www.yohasebe.com/2009/5/30/rails23/
583nobodyさん:2009/12/18(金) 18:46:13 ID:???
Railsがリクエストを受け取ってからコントローラで処理するまでの流れを知りたいのですが、なにかいい方法はありますか。
ソースを読むならここを読めというのがあれば教えてください。
バージョン:Raisl2.3.5
584nobodyさん:2009/12/18(金) 22:24:46 ID:???
>>579
プロセスの生き死にの管理が面倒。
いつの間にかささってレスポンス返さなくなったときに、
それを発見して、killして、新しいプロセスを立ち上げるというのを
大抵は自前でどうにかしないといけない。
ウェブサーバを落としても、プロセスは生きてたりするしね。
585nobodyさん:2009/12/18(金) 22:27:39 ID:???
>>583
class ApplicationController < ActionController::Base
def index; raise; end
end

とでもして、ログに出るスタックトレースにしたがってソースを読めばいいかと。
586nobodyさん:2009/12/19(土) 00:49:48 ID:???
>>585
頭いいなあ!さんくす
587nobodyさん:2009/12/19(土) 08:50:16 ID:???
>>584
でもruby以外にpythonやマイナーな言語で書かれたものとか混合しようとするとFastCGI以外になさそうなんですよね
588nobodyさん:2009/12/19(土) 15:47:38 ID:???
定期的に再起動すればいいだけ。

http://pc11.2ch.net/test/read.cgi/php/1141214874/
【fcgi】FastCGI 総合スレッド
http://pc11.2ch.net/test/read.cgi/php/1149505269/
【激速】mod_perl SpeedyCGI FastCGI【激速】
589nobodyさん:2009/12/20(日) 09:19:26 ID:???
FastCGI入れられる環境なら、Ruby側はpassengerつかっときゃいいような気がするが。
自動再起動機能もあったろう
590nobodyさん:2009/12/20(日) 09:21:27 ID:???
>>583
NetBeansなどIDEでブレークポイントし掛けてソース追っていく方法はあるよ。

俺はRailsのデバッグ、というかソース追って読むの挫折したw
method_missingとかのせいか遷移がわけわからん。
591nobodyさん:2009/12/21(月) 19:39:55 ID:fEey4yBh

Rails 3 in Action
http://www.manning.com/katz/

Deal of the day for December 21, 2009
Megadeal! 50% off all ebooks
http://archive.constantcontact.com/fs043/1101335703814/archive/1102861452175.html

592nobodyさん:2009/12/21(月) 22:14:09 ID:fEey4yBh
593nobodyさん:2009/12/23(水) 18:38:55 ID:???
Railsで、404 Not Foundを返すときはどうするのがいいでしょうか。
Merbだとそれ用の例外を投げるという実にわかりやすい方法があったのですが。
ちなみにRails2.3.5です。
594nobodyさん:2009/12/23(水) 19:02:40 ID:???
コントローラ内で render 凝りまくったエラー画面, :status => :not_found
としてもよいけど、例外単位でよければ以下のように。

ActionController::Base.rescue_responsesに例外クラス名とステータスを登録する。
たとえば
ActionController::Base.rescue_responses['ArgumentError'] = :bad_request
デフォルトで ActiveRecord::RecordNotFound なら :not_found みたいなのが登録さ
れている。

通常の例外時の動作は public/STATUS.html を返す(render_optional_error_file)
だけなので、これを変更したければ rescue_action_in_pubic などをカスタマイズする。

なお、development だと、そのままでは開発向けエラー画面が出るので、
エラー画面自体の確認をしたいときは config/environments/development.rb の
consider_all_requests_local を false にし、ループバック(localhost や 127.0.0.1)以
外のアドレスでサーバにアクセスする。

ソースは action_controller/rescue.rb
595nobodyさん:2009/12/23(水) 19:31:48 ID:???
>>594
参考になりすぐる!ありがと。
596nobodyさん:2009/12/23(水) 22:02:53 ID:???
>>594
横体がありがとあい
597nobodyさん:2009/12/24(木) 00:22:36 ID:???
ファイルをアップロードするときにセキュアにするにはどうしたらよいのでしょうか?
ssl通信等を使用する方法はどのあたりを調べるとわかるでしょうか?
598nobodyさん:2009/12/24(木) 02:13:09 ID:???
>>597
HTTPS自体はアプリ側で特に意識する必要はないよ。
どっちかというとWebサーバの設定。
599nobodyさん:2009/12/24(木) 09:17:32 ID:???
>>594
例外の処理には rescue_from というのもあるわん。
600nobodyさん:2009/12/24(木) 20:39:55 ID:???
Herokuってどうなの?
601nobodyさん:2009/12/25(金) 00:25:14 ID:???
>>598
そうなんですか.ありがとうございます.
602nobodyさん:2009/12/25(金) 19:50:30 ID:???
ロケーションバーからアクションに直接アクセスされた場合のみ他ページへのリダイレクトをかけたいんですが,どうやればよいのでしょうか?

例えばViewで,
<div id="sample">
<%= select("foo", "bar", data) %>
<%= observe_field(:foo_bar, {
:update => :baz,
:on => 'change',
:url => { :action => :some_action },
:with => "'foo_bar=' + value"}) %>
</div>
となっている場合,ブラウザのロケーションバーから直接localhost:3000/controller/some_actionへアクセスされた際に,
他のページへリダイレクトさせたいです.
コンボボックスの選択変更によりsome_actionが起動した際には,リダイレクトしないようにしたいです.
some_action内にそのままredirect_toを書いてしまうと,コンボボックスの選択変更でsome_actionが起動したときにもリダイレクトしてしまうので困っています.
603nobodyさん:2009/12/25(金) 20:14:54 ID:???
>>602
request.referrer を見る。(referでも可:-)
ただし、送らないように設定している人がアクセスできなくなる。

今回はAJAXみたいなので、別解として
verify :xhr => true, :only => :some_action
も紹介しておく。今回はたぶんこっちがよいのでは?

604nobodyさん:2009/12/25(金) 21:35:57 ID:???
>>603
なるほど,そうすればいいんですか.
思ったとおりに実現できました.ありがとうございます.
605nobodyさん:2009/12/26(土) 04:11:25 ID:???
rails2.3.5使う場合って
rubyのバージョンは1.8.6推奨なの?
reeは1.8.7出てるから、そろそろ1.8.7?
606nobodyさん:2009/12/26(土) 09:30:19 ID:???
2.3系はどっちでもえーよ。
3.0.preでは1.8.6は切り捨て。
607nobodyさん:2009/12/26(土) 12:36:12 ID:N7t9YIOf
古い資産がないなら1.8.7使っておいた方が良いような気がする
608nobodyさん:2009/12/26(土) 14:30:42 ID:???
そもそも、railsの人って1.8.6じゃなきゃダメみたいなイメージがあるんだけど
1.8.6と1.8.7の差ってそんなに大きいの?
609nobodyさん:2009/12/26(土) 16:12:06 ID:???
1.8.6を捨てたくなる程度には大きい。
610nobodyさん:2009/12/26(土) 18:16:55 ID:5fe5VdgJ
Ruby 1.8.7で使えるようになったRuby 1.9のメソッドたち - (rubikitch
http://d.hatena.ne.jp/rubikitch/20080508/ruby187

http://drnicwilliams.com/2009/11/03/first-look-at-rails-3-0-pre/

611nobodyさん:2009/12/26(土) 22:35:03 ID:???
>>600
どうっていうと?
デプロイは異常に楽だよ。
DBに溜め込むデータ量が少ない自分専用の小物アプリくらいなら無料でもいける。
まともなアプリを設置するには有料じゃないと無理。
612nobodyさん:2009/12/27(日) 02:54:47 ID:???
rails3っていつベータリリースされんの?
613nobodyさん:2009/12/27(日) 03:56:24 ID:???
まだlighthouseにも日付が出てないな。
見たいだけならgitからどーぞ。
614nobodyさん:2009/12/27(日) 05:59:02 ID:???
from/to日付の入力チェックの際に
from>to ならエラーとするようなvalidateを書いたんだが

def validate
errors.add(:from_date, "日付が不正です。") if (from_date > to_date)
end


エラー発生時にfrom/toどちらとも赤い四角(class="fieldWithErrors")で囲む方法ってある?
615nobodyさん:2009/12/27(日) 09:48:34 ID:???
>>614
そういうカスタマイズって、Railsは難しいよねー


質問なんですけど、ruby script/console してから、FooController.new.index()を実行するとエラーになります。
consoleのなかからControllerオブジェクトを生成するただしい方法を教えてください。
616nobodyさん:2009/12/27(日) 11:42:20 ID:???
>>615
app というオブジェクトがある。

script/console> app.get '/foo/index'
のようにリクエストを投げると
script/console> app.controller
に対応するコントローラがセットされる。

617nobodyさん:2009/12/27(日) 14:33:15 ID:???
>>614
フレームワークの範囲内でやるには、関係が満たされていないときに
両方を errors.add すればいいんじゃない?

618nobodyさん:2009/12/27(日) 17:34:38 ID:???
>>605
http://rubyonrails.org/download みると冒頭に
We recommend Ruby 1.8.7 for use with Rails.
とある。
619614:2009/12/27(日) 19:31:19 ID:???
>>617
それだとエラーメッセージの表示がすっきりしない。
どうしたもんか。
620nobodyさん:2009/12/28(月) 01:09:51 ID:???
>>619

全く未検証ながら、
ActionView::Base::Helpers::ActiveRecordHelper#to_date_select_tag(など)の定義を
app/helpers以下にコピってきて、

error_wrapping(to_date_select_tag_without_error_wrapping(options, html_options),
  object.errors.on(@method_name))
を、
has_error =
case @method_name
when :from_date, :to_date; object.errors.on(:from_date) or object.errors.on(:to_date)
else objet.errors.on(@method_name)
end
error_wrapping(to_date_select_tag_without_error_wrapping(options, html_options), has_error)
と書き換えた定義を作る。

from_date to_dateのフィールドのエラーを判定するときだけ相方のエラーも考慮。
621nobodyさん:2009/12/28(月) 06:27:12 ID:6MaAP7GA
622nobodyさん:2009/12/30(水) 06:18:07 ID:p1BkGZKi
【PHP】フレームワーク Akelos
http://pc11.2ch.net/test/read.cgi/php/1187333485/l50
623nobodyさん:2009/12/30(水) 10:01:16 ID:+1QPHe9X
あけおめ
624nobodyさん:2009/12/30(水) 11:20:23 ID:p1BkGZKi

Rails and Merb Merge: Performance (Part 2 of 6) | Engine Yard Blog
http://www.engineyard.com/blog/2009/rails-and-merb-merge-performance-part-2-of-6/
625nobodyさん:2009/12/30(水) 11:30:17 ID:???
毎日1本ずつかと期待してたがやっとパート2が来たか。
626nobodyさん:2009/12/30(水) 15:10:49 ID:???
Ruby1.9.2が正式リリースされないと、Railsも正式リリースされないんだろうな
1.9.2はpreview2も出ないし、まだ先なのかね
627nobodyさん:2009/12/30(水) 15:57:14 ID:???
RubySpec走らせようぜぇ
628nobodyさん:2009/12/31(木) 06:41:41 ID:0ZeyyLVy
dhh

@37signals is already running a few minor apps on Rails 3. We've just started playing w/ porting Basecamp. Exciting times!
http://twitter.com/dhh/status/7208264678

http://twitter.com/dhh/status/7107817801
Very tentative target date for Rails 3 beta is end of January. But core is staffed with volunteers, so very much subject to change.
about 1 hour ago from Echofon
629nobodyさん:2009/12/31(木) 06:58:56 ID:0ZeyyLVy
@sockmonk 1.8.7. Rails 3 requires 1.8.7.
http://twitter.com/wycats/status/7138079908

dhh

@37signals is already running a few minor apps on Rails 3. We've just started playing w/ porting Basecamp. Exciting times!
http://twitter.com/dhh/status/7208264678

Very tentative target date for Rails 3 beta is end of January. But core is staffed with volunteers, so very much subject to change.
http://twitter.com/dhh/status/7107817801
630nobodyさん:2009/12/31(木) 08:31:33 ID:0ZeyyLVy
Very tentative target date for Rails 3 beta is end of January. But core is staffed with volunteers, so very much subject to change.
http://twitter.com/dhh/status/7208225785
dhh
631nobodyさん:2009/12/31(木) 14:23:44 ID:???
何度も書くほどの事かね.

dogfooding出来る程度動くようにはなってきたというのはわかった
632nobodyさん:2009/12/31(木) 22:48:13 ID:0ZeyyLVy









633nobodyさん:2010/01/03(日) 01:04:56 ID:???
railsでleft join whereって使えないよな。
has_manyとかはidしか条件にしないし、他の条件を使えない気がする。
634nobodyさん:2010/01/03(日) 17:24:17 ID:Kv5gn0C+
635nobodyさん:2010/01/04(月) 00:12:50 ID:???
>>634
ほほぅ
636nobodyさん:2010/01/04(月) 00:15:11 ID:???
>>633
:joins 指定すればいいという話ではなく?
637nobodyさん:2010/01/04(月) 00:32:56 ID:???
Railsの勉強で、簡単なブログツールを作っています。
記事のモデルオブジェクト(Post)にコメント数を表すカラム(comment_count)を作成しているのですが、これの更新方法がよくわかりません。
たぶんトランザクションを使って、コメントが保存できたらcomment_countを1増やすという方法になると思うのですが、
以下のようなコードであっているでしょうか。どなたか添削をお願いします。

def add_comment
 # ブログ記事のモデルオブジェクトを検索
 post = Post.find(params[:id]) or raise ActiveRecord::RecordNotFound.new
 # コメントオブジェクトを作成し、記事IDを設定
 comment = Comment.new(params[:comment])
 comment.post_id = post.id
 begin
  # トランザクション開始
  Post.transaction do
   # コメントをセーブ
   comment.save!
   # コメントがセーブできたら、コメント数を1増やす
   post.comment_count += 1
   post.save!
  end
  # エラーがなければ 'OK' を出力
  render :text=>'OK'
 rescue ActiveRecord::RecordInvalid => ex
  # エラーがあれば、エラーメッセージを出力
  errmsg = comment.errors.collect{|arr| arr.join(': ')}.join("¥n")
  response.status = 422
  render :text=>errmsg
 end
end
638nobodyさん:2010/01/04(月) 01:57:03 ID:14ehE+TL
無駄が多くて全然railsっぽくない。以下のようにするといいよ。

def add_comment
 # ブログ記事のモデルオブジェクトを検索
 post = Post.find(params[:id]) # raise は明示的に書く必要はない。

 # アソシエーションを利用してコメントオブジェクトをビルド(post_idは自動的に代入される)
 comment = post.comment.build
 # パラメーターでアップデート(うろ覚えなのでシンタックスエラーがあるかも)
 comment.update_attributes!(params[:comment])
end

コメント数はcomment_countカラムを作らずに以下で数えるほうがいいと思うけど。よほど膨大な(100万単位の)コメントがつかない限り。
Comment.count(:conditions => 条件)

639nobodyさん:2010/01/04(月) 02:01:50 ID:???
>>636
なるべく生のsql文は使いたくなくて
でもまぁこれが一番手っ取り早いか
640nobodyさん:2010/01/04(月) 02:08:21 ID:???
営業能力も上げていかないと技術だけでは35歳以上はこの業界では生き残れないと断言しよう
40歳過ぎにもなれば、営業能力70%技術力30%くらいの割合になるマジで
同じ会社で死ぬまで雇ってもらえるなら別だが
そんな保障はどこにもない
641nobodyさん:2010/01/04(月) 02:09:27 ID:14ehE+TL
それに def add comment でなくて、
restfulに書くならばComment Controllerを作って、createアクションで処理する方がいいよ。
before_filter でPost.find(:post_id) を常にしておくべき。
そうすればその情報を使ってアソシエーションに沿ってコメントを作成できる。
642nobodyさん:2010/01/04(月) 14:14:39 ID:CMnexdc2
643nobodyさん:2010/01/04(月) 20:11:46 ID:CMnexdc2
Getting a New App Running on Edge
http://weblog.rubyonrails.org/2010/1/1/getting-a-new-app-running-on-edge
So people have been attempting to get a Rails app up and running recently.
I also have some apps in development on Rails 3
644nobodyさん:2010/01/04(月) 20:48:54 ID:???
>>637
自習するのは止めないけど、belongs_to の :counter_cache も忘れないで。
645nobodyさん:2010/01/04(月) 23:22:51 ID:???
>>639
亀レスだが has_many :people, :foreign_key=> 'original_key_name'
とかじゃダメなのか?
646nobodyさん:2010/01/05(火) 02:00:40 ID:???
>>645
おぉ。これでkeyを指定できるようになるのか。便利。
647nobodyさん:2010/01/05(火) 06:24:05 ID:???
>>638
どうもありがとうございます。raiseは書かなくていいんですか。なるほどー。

> コメント数はcomment_countカラムを作らずに以下で数えるほうがいいと思うけど。よほど膨大な(100万単位の)コメントがつかない限り。
> Comment.count(:conditions => 条件)

すべての記事を、コメントやトラックバックの多い順でソートする機能を付けようとしています。
その場合、記事ごとにコメント数がついていたほうが簡単かつ高速なので、comment_countカラムを作っています。
とりあえず、トランザクションまわりについては>>637であってるのでしょうか。
詳しい方、お願いします。
648nobodyさん:2010/01/05(火) 10:27:07 ID:???
>>647
コメント削除したらコメントカウントのカラムもupdateしないといけない
面倒くせ
649nobodyさん:2010/01/05(火) 10:42:18 ID:???
ソートする機能を考慮しても
コメント数はcomment_countカラムを作る必要性がわからん
また高速性を考えるならrailsを使う意味がない、生産性重視ならcomment_countカラムはいらん
650nobodyさん:2010/01/05(火) 10:57:18 ID:DXl89df8

イノベーションのジレンマ - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%8E%E3%83%99%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E3%82%B8%E

ディスラプティブ技術 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%87%E3%82%A3%E3%82%B9%E3%83%A9%E3%83%97%E3%83%86%E3%82%A3%E3%83%96%E6%8A%80%E8%A1%93

スタートアップの始め方
http://www.aoky.net/articles/paul_graham/start.htm
テクノロジーの世界では、常にローエンドがハイエンドを食っている。
安価な製品をより強力にするほうが、強力な製品を安くするよりも簡単なのだ。
だから安価でシンプルというところから始めた製品は徐々に強力なものへと成長していき、水が部屋に満ちるように、
「ハイエンド」の製品を天井の方へと押し込めることになる。
Sunはこれをメインフレームに対して行い、IntelはSunに対して行っている。
651nobodyさん:2010/01/05(火) 14:54:37 ID:s5/1mF78


Twitter創始者が語るWeb 2.0の要諦 ― @IT
http://www.atmarkit.co.jp/news/200711/16/twitter.html
Railsを使って2週間でプロトタイプが完成
ウィリアム氏がOdeo内で始めた小さなプロジェクトが「Twitter」だ。
Ruby on Railsを使って2週間で最初の動くバージョンを作り上げたという。


Twitterをはじめると2週間でブログの更新が止まる理由 そしてはじまる(かもしれない)総表現社会 - mizchi log
http://d.hatena.ne.jp/mizchi/20090711/1247265579

652nobodyさん:2010/01/05(火) 22:42:48 ID:???
>>647
transactionの使い方はそんな感じでいいと思う。
do..endのなかでsave!とかupdate_attributes!ね。AR::RecordNotSaved系の
例外が飛んで、transctionがrollbackする。

ただ、検索したり保存したりは >>638 の書いているコードのほうがキレイなので
それを参考にした方がいい。

コメント件数は>>644のいうとおり、counter_cacheを使うと同じようなことを
ARが勝手にやってくれるので、プロダクションコードではそちらを使う方がいいと思う。

あと >>649
> また高速性を考えるならrailsを使う意味がない、生産性重視ならcomment_countカラムはいらん

んなこたない。
counter_cacheなり、それの自作なりを使わないでソートするためには、
Rubyでゴリゴリ書くか、相関サブクエリ使うことになると思うんだけど、
前者はさすがに遅い/無駄だし、後者は面倒なだけだと思うんだけどどうか。
653nobodyさん:2010/01/06(水) 03:03:28 ID:???
>>652
コメントカウント出すサブクエリなんてなんて1分もあれば書けるだろ
面倒なのかな?
654nobodyさん:2010/01/06(水) 12:25:42 ID:3+83O9QS
Rails 3 in Action
http://www.manning.com/katz/
Yehuda Katz
MEAP Release: 2009
Softbound print: April 2010 (est.) | pages
ISBN: 9781935182276

1. Building Your First Rails 3.0 Application
2. Overview of the Rails stack(s) + architecture
3. Creating Rails Applications
4. Using DataMapper for Models
5. Using ActiveRecord for Models
6. Other Choices for Models
7. Processing Requests
8. Routing in Rails 3
9. Customizing Views
10. Working on the Client Side
11. Supporting Characters
12. Using the Plugin API
13. Testing Your Applications
14. Deploying a Rails Application
15. Scaling Rails

Appendix A Just enough advanced Ruby
Appendix B The migration story
Appendix C Rails 2 to Rails 3
Appendix D Merb 1 to Rails 3
655nobodyさん:2010/01/06(水) 16:39:08 ID:3+83O9QS
656nobodyさん:2010/01/06(水) 16:45:50 ID:3+83O9QS
657nobodyさん:2010/01/07(木) 09:51:46 ID:acpOW5s0
David Heinemeier Hansson
Bibliography
http://www.amazon.com/David-Heinemeier-Hansson/e/B001JS19Y8/
658nobodyさん:2010/01/08(金) 02:25:13 ID:???
SQLite3で排他制御する場合どうすればいいですか?

SQLite3にはSELECT FOR UPDATEはないので
find(:lock => true)は使えないですよね。

トランザクションを
BEGIN IMEDIATE TRANSACTION
で開始すればいいのじゃないかと思うんですが
どこに書いたらいいものか分かりません。
659nobodyさん:2010/01/09(土) 14:09:25 ID:C3iGMVdd
SELECT FOR UPDATE なんて使わないから、使える
660nobodyさん:2010/01/09(土) 18:20:07 ID:eVooFF5+

Phusion Passenger 2.2.9 released
http://blog.phusion.nl/2010/01/08/phusion-passenger-2-2-9-released/
Fixed compatibility with Rails 3.
661nobodyさん:2010/01/10(日) 02:02:57 ID:???
>>659
すいません。
だれ(なに)が使わないので
だれ(なに)が使えるのでしょうか?

662nobodyさん:2010/01/10(日) 12:04:22 ID:shGxwVTU
663nobodyさん:2010/01/10(日) 12:10:39 ID:shGxwVTU
664nobodyさん:2010/01/10(日) 21:44:08 ID:???
>>659
小学生でもわかる日本語でおねがいします
665nobodyさん:2010/01/11(月) 11:52:44 ID:???
馬鹿にはrorは無理。
666nobodyさん:2010/01/11(月) 17:01:28 ID:???
config/environment.rb にいろんな設定書くけど、
独自に設定を追加してもいいんでしょうか。
Rails::Initializer.run do |config|
 config.my_value = 'foobar'
end
みたいな。
あと、それを追加したとして、読み出す方法を教えてください。
667nobodyさん:2010/01/11(月) 19:32:25 ID:yaZxWBJR
668nobodyさん:2010/01/11(月) 20:46:07 ID:???
>>666
config(Rails::Configuration)はRails本体の設定しか受け付けない。
定数使って
MY_CONFIG = { :foo => 'bar', :hoge => 'fuga' }
のようにするのが手っ取り早い。

ちなみにアプリの利用者が変更する必要がない設定は
config/environment.rbやconfig/enviroments/*.rbに書く。
利用者が変えられる設定ならconfig/initializers/*.rbに書く(2.0以降のみ)。

設定が大量になりそうならYAMLファイルで外に出してenvironment.rbなどから読み込むか、
configatronのようなプラグインを使うか。
669nobodyさん:2010/01/12(火) 00:22:34 ID:???
質問主ではないが、勉強になった。
ありがとん > 668
670nobodyさん:2010/01/12(火) 03:14:39 ID:???
ここでアホな質問してる人らって、わからんことあったらまずここに書いて
のんびりテレビでも見てんの?
671nobodyさん:2010/01/12(火) 04:35:12 ID:???
アホな質問続きだが
railsで使用しているpluginのバージョンを一括表示する方法ってない?
script/about みたいな感じで。
672nobodyさん:2010/01/12(火) 04:46:22 ID:609VTkN+


Rails and Merb Merge: Plugin API (Part 3 of 6) | Engine Yard Blog
http://www.engineyard.com/blog/2010/rails-and-merb-merge-plugin-api-part-3-of-6/
673nobodyさん:2010/01/12(火) 19:07:46 ID:???
Paginateを使いたいのですが以下のエラーが出ます。
---
undefined method `total_pages' for #<Array:0x5bcc4d8>

Extracted source (around line #42):
42: <%= will_paginate @items %>
---

scaffoldで新しくひな形を作り、

environment.rb の一番下に require 'will_paginate'

index.html.erb の一番下に <%= will_paginate @items %>

pages_controller.rb に
def list
@items = Item.paginate :page => params[:page], :per_page => 10
end

これらを追加しただけなのですが、何が原因でしょうか。
674nobodyさん:2010/01/12(火) 20:02:14 ID:???
質問させてください。

テストサーバー(staging環境)用にproduction環境でRailsアプリを動かしているのですが、
エラーが出たときにサーバーにもぐっていちいちlog/production.logを見るのが面倒です。
また、サーバーのログイン権限が無い開発者にもローカルの開発サーバー(webrickやmongrelのdevelopment環境)のように
エラー内容を人目でわかるようにしたいのですが、そのようにエラーを表示する方法はないものでしょうか?
675nobodyさん:2010/01/12(火) 20:27:20 ID:4XZzyMEc
676nobodyさん:2010/01/12(火) 22:54:24 ID:???
>>673
なぜpages_controller.rb? その説明だけだと、items_controllerになりそうな感じだけど。
677nobodyさん:2010/01/12(火) 22:57:41 ID:???
>>671
これ使うとか。自分はまだ使ったことないけど。
http://github.com/grosser/tracked_plugins

>>673
ヘルパーメソッドのwill_paginateに渡すのはArrayじゃなくて、
paginateの戻り値のWillPaginate::Collectionじゃないといけない。
なので、コントローラかビューのなかで@itemsをArrayにしちゃってないか確認してみて。

>>674
・Exception Logger:DBにエラーを保存してアプリ上で閲覧
・Exception Notifier:エラーをメールで送信
・Syslogに記録:http://blog.s21g.com/articles/229
・Clarity:ログ監視ウェブアプリ http://www.moongift.jp/2009/11/clarity/
678nobodyさん:2010/01/14(木) 21:03:02 ID:MmCuc8fs

Do One Thing for Rails 3 on January 16th and 17th
http://railsbridge.org/news_items/10
679674:2010/01/14(木) 21:35:26 ID:???
>>677
たくさんありがとうございます!

一番下の見ていて、webでログ監視すればいいのかって気づいて
tailコマンドのphp版設置してみました。部内LANサーバーなので問題ないです。
php1ファイルで設置らくちんw ちょっと不便ですが、致命的になるまではこれで試してみます。
jQueryとPHPでLinuxのtailコマンドを実装する - EC studio 技術ブログ
http://techblog.ecstudio.jp/tech-tips/phptail.html
680nobodyさん:2010/01/15(金) 16:09:17 ID:???
MYSQLで以下のようなテーブルを使っています。
| id | name | email | check(boolean型) |

restful_authenticationプラグインのsignupでユーザーを新規登録した時、
"check"に自動的に0の値を入れたいのですがどのようにすれば良いでしょうか?
681nobodyさん:2010/01/15(金) 17:33:21 ID:???
スキーマ定義を触れるならMySQLのcreate tableのほうで、
checkカラムにデフォルト値0を設定しておけばいいと思う。
create/save時に未指定なら0が入る。
あとはbefore_saveとかafter_initializeとかのフック。
682nobodyさん:2010/01/16(土) 04:57:42 ID:???
>>680
はてなのタケルンバさんのblogで丁寧にまとめられていますよ
683nobodyさん:2010/01/16(土) 20:30:35 ID:???
基本的にJava屋で、今年からRailsをやってます。

find_by_sqlってのを見つけた瞬間、

find_by_sql("select col1, col2 from table")

って感じで使いまくってんだけど、これっていいのだろうか?
だっせー、かっこわりーって思われないだろうか?
684nobodyさん:2010/01/16(土) 20:37:30 ID:???
求めるタスクがこなせてるならいーんじゃない?
685nobodyさん:2010/01/16(土) 21:25:58 ID:???
>683
ダサい。
なんでリファレンスをちゃんと読まないんだ。自称Java屋のくせに。
686nobodyさん:2010/01/16(土) 22:29:46 ID:???
>>683
ほんとにその程度のSQLで使ってるのなら、
ださいとかじゃなくてありえない
687nobodyさん:2010/01/16(土) 23:25:29 ID:???
もう転職考えた方がいいレベル
688nobodyさん:2010/01/17(日) 00:01:02 ID:???
>>683
>find_by_sql("select col1, col2 from table")

あれ、Table.find() って col1, col2 の指定ってできたっけ?
できなかったと思うから、自分もfind_by_sqlよくつかうよ。

689nobodyさん:2010/01/17(日) 00:04:41 ID:???
外のカラムが不要な場合は Table.find(:all, :select => 'col1, col2')
690nobodyさん:2010/01/17(日) 00:05:44 ID:???
うおっ

× 外(ほか)
○ 他(ほか)
691nobodyさん:2010/01/17(日) 03:56:17 ID:???
タケルンバに失笑されるレベル
Javaフレームワークは使ったことないんだろか
692nobodyさん:2010/01/17(日) 10:33:43 ID:???
>>688
間違えた、find_by_sql()じゃなくてActiveRecord::Base.connection.select_rows(sql)だった。
group byやhavingが入るようなsqlだとこっちのほうが楽なんだけど、そんなことない?
693nobodyさん:2010/01/17(日) 10:41:10 ID:???
AR::Baseとして取り出す必要がないならそれも手ではある。
694nobodyさん:2010/01/17(日) 11:30:47 ID:???
パフォーマンス(笑)のためだったりするんだろうか。
695nobodyさん:2010/01/17(日) 16:13:12 ID:mYKzzqeT
683です。

なるほど、やっぱりダサいのか
ちなみに例に上げたのは簡単なやつだけど
実際に使ってるのは、サブクエリーが絡むような複雑なやつなんだけどね

>> 691
Hibernate使ってたけど、あまり好きじゃないね

>> 694
find_by_sqlの方が、パフォーマンスよくなるん?
696nobodyさん:2010/01/18(月) 09:03:43 ID:BApO165G

日本の富豪40人(2010年) - フォーブス長者番付・億万長者ランキング
http://memorva.jp/ranking/forbes/201001_japan_richest40.php
田中良和 グリー創業者 IT 32 1.60 1456億円
笠原健治 ミクシィ創業者 IT 34 0.72 655億円
697nobodyさん:2010/01/19(火) 13:32:36 ID:aU7LUmun
passengerでrails動かしたいのですが、
DocumentRootにアクセスしてもdispatcher.fcgiのソースが表示されてしまいます。

これって正しくモジュールが読み込まれてないからなんでしょうか。
httpd.confにはLoadModuleもしてるしapacheのエラーは出てません。
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.9/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.9
PassengerRuby /usr/bin/ruby

どなたか原因解明の手がかりwご存知の方ご教授願います。
698nobodyさん:2010/01/19(火) 23:30:34 ID:???
.htaccessはどうなってる?
699nobodyさん:2010/01/20(水) 16:17:25 ID:???
railsを勉強しようと思うんですが、初心者向けで
お勧めの本はありますか?あるいは、これは読んで
おくべき本でも構いません。
700nobodyさん:2010/01/20(水) 17:16:39 ID:???
ちょっと古いかもしれないけど

かんたんRuby on RailsでWebアプリケーション開発
著者 arton さん
ttp://www.amazon.co.jp/dp/4798111570
701nobodyさん:2010/01/20(水) 17:53:46 ID:???
>>699
ム板で回答しておいたのでそれを貼っときます。

Ruby 初心者スレッド Part 33
http://pc12.2ch.net/test/read.cgi/tech/1259990485/804

804 名前:デフォルトの名無しさん[sage] 投稿日:2010/01/20(水) 16:21:54
>>800
初心者が最低限これだけあればまずはなんとかなる!って書籍を3つ。
というか俺が実際にRails初心者レベルで仕事で使った本

・RailsによるアジャイルWebアプリケーション開発
http://www.amazon.co.jp/dp/4274067858/

・Ruby on Rails 逆引きクイックリファレンス Rails 2.0対応
http://www.amazon.co.jp/dp/4839928266/

・Railsレシピブック 183の技
http://www.amazon.co.jp/dp/4797336625/

あとは、webサイトだけど公式のガイド。ちょっとしたわからんことはまずこれ見たら大体すむ
Ruby on Rails guides
http://guides.rubyonrails.org/

毎回聞かれてるんで、Railsスレテンプレに入れといていいと思うんだ・・・
702nobodyさん:2010/01/20(水) 17:58:26 ID:???
ついでに質問いいでしょうか?

script/serverで開発用のmongrelなどを立ち上げた場合は、
動的に読み込んでくれているためか大概は開発中にファイルの編集後でも
コードの反映はサーバーを立ち上げ直さずにブラウザのリロードで済みますよね?

こういうのをscript/consoleでする方法ってないもんでしょうか?
script/consoleの再起動はそんなに重くないとはいえ、何回もやってたらけっこう面倒です。
再度requireする?のがよいんでしょうか?
703nobodyさん:2010/01/20(水) 17:58:49 ID:???
>>699
最近、Head First Railsて本の翻訳が出てて、洋書を読んだ感じだとだいぶよかった。
Rails 2.3にも対応している唯一?の本なので、独特のテンションが嫌いじゃなきゃかなりオススメ。
704nobodyさん:2010/01/20(水) 18:50:18 ID:???
質問させてください。

コントローラーのbefore_filterのような感じで、レンダリング前にメソッドを実行するようなフィルタは定義できないものでしょうか?
layout/application.html.erb 内でコントローラーのメソッドを(ヘルパー化して)呼ぶしか無いでしょうか?
705704:2010/01/20(水) 18:57:33 ID:???
> layout/application.html.erb 内でコントローラーのメソッドを(ヘルパー化して)呼ぶしか無いでしょうか?
これダメでした。

ヘルパー内で @hoge = 1234 のようにしてもerbの方に反映されませんね…。
layout/application.html.erb の最初の行にロジックを直書きして対処しました。
何かいい方法ないもんですかね
706nobodyさん:2010/01/20(水) 19:46:07 ID:???
>>699
Head First Railsが今一番新しくて初心者向けの本、オススメ。
これでわからなかったらRailsは諦めて別なのをやった方がいい。

あと
RailsによるアジャイルWebアプリケーション開発の第三版がオススメ
第二版と初版は古いバージョンのRails用だから間違って買うと泣くはめになる。

707nobodyさん:2010/01/20(水) 19:47:15 ID:???
Rubyスレで質問して、Railスレ逝けと言われて来ました。

今回初めてRubyを仕事で扱うことになり、
RailsによるアジャイルWebアプリケーション開発のT部を読んで
Smarty使って、PHPで開発するのとそう変わらないなと思い、
本ちゃんプログラムの解析にかかったのですが・・・

・ controllers,models,viewsともにjsファイルばかり。
・ ブラウザでソースをみたら、ログイン画面なのに1万行近くソースがある。
・ 画面遷移しても、URLは変わらない。
・ サーバーとクライアントのソースがある?

等、ちょっと見かけたことのない構成でした。
こりゃわからんと思い、参考書の続きを読もうとしましたが、
そもそも参考書読んでわかる内容なのか疑問を持ちまして・・・

そこで、質問なのですが
1.上記のような構成はRailsでは一般的で初心者レベルの話
2.それなりに高度な技術で初心者が参考書を読んだ程度で
  太刀打ちできるレベルの内容ではない
3.製作者が変態。そんな作り聞いたことがない。まず見かけない。

いずれですか。
1なら参考書読んで調べます(キーになる単語を教えてくれると助かります)
2ならダメぽと上に報告します。
3なら・・・頑張ります。

以上、教えて下さい。。。
708nobodyさん:2010/01/20(水) 19:49:37 ID:???
あとRails始めるなら
RSpecも同時に調べておいた方がいい。
BDD、TDDなどの開発手法を要チェック。
cucumberも
709nobodyさん:2010/01/20(水) 19:51:53 ID:???
710nobodyさん:2010/01/20(水) 19:58:41 ID:???
>>707
たぶんほとんど全機能をAJAXで実装しているんじゃないかね。
Railsがその中でどう使われているかは質問だけでは分からないけど…
711nobodyさん:2010/01/20(水) 20:38:09 ID:???
>>710
ありがとうございます。
確かに、ブラウザの戻るボタンがグレーアウトしてる等
思い当たる節はあります。

AJAXを使用しまくっているという前提に立ってもう一度
解読してみます。
712nobodyさん:2010/01/20(水) 22:19:08 ID:Qj1mXafK
>>702
reload!
713nobodyさん:2010/01/21(木) 00:05:32 ID:???
>>704
レンダリング前ってつまりcontrollerのアクション内がそうだけど、
ビューのレンダリングのタイミングで処理したい理由は?

>>707
これだよね?
http://www.amazon.co.jp/dp/4274067858/

ソースコード↓を見ても、Ajaxなんて使ってないけど。
http://www.ohmsha.co.jp/data/link/978-4-274-06785-3/

第1版しか読んでないけど、最初から全部Ajaxで作るみたいな珍妙な本ではないはず。
714nobodyさん:2010/01/21(木) 00:14:02 ID:???
>>713
本で学んだ後「本ちゃんのプログラム」にとりかかっている、と解釈した。
715704:2010/01/21(木) 08:26:59 ID:???
>>713
ありがとうございます。

layouts/application.html.erbのサイドバー内に
サイドバーなどにDBからクエリーしてきた最新の結果を常に表示したい、という感じです。

例えが難しいのですが、例えば睡眠時間を記録するサイトで
サイドバーに今日の睡眠時間、といったような数値を表示したいとします。
その場合、application_controllerにbefore_filterかまして
毎度呼ばれるのメソッド内にて今日の睡眠時間を取得する処理を書くと、
コントローラー内で処理をする前の数値を取得してしまいます。
コントローラー内で処理をした後の数値を表示したいのです(つまりできるだけレンダリング前に)。

なので、layouts/application.html.erbの先頭に、
今日の睡眠時間を取得する処理を書いちゃえ!ってことなんですが、
(できるだけモデル依存部はモデルに書くとしても)そういうロジックをviewに各のはどうなんだ、と思った次第です。
716nobodyさん:2010/01/21(木) 08:32:44 ID:???
>>707
適当に予想します。

jsばっかり=フロントエンドがAJAX(JavaScript)、バックエンド処理がRails
(それでもmodelsがjsばっかりはない気が?)
JS(AJAX)がクライアント処理、サーバーがRailsと見た。

RSSリーダーのOpen Fastladder(Livedoor ReaderのRails実装でソース公開されてるやつ)
みたいなのをイメージしたんだけど違うかな。
つまり、RailsでwebアプリのAPIをガリガリ書いて、JavaScriptでガワを作るような構造。

まずは、テストコードを読むことから始めたらどうかな?
ちゃんとしたアプリならテストがたくさん書かれているはずなので、
どんな感じにモデルを扱っているかとか仕組みがわかるはず。
717nobodyさん:2010/01/21(木) 09:21:00 ID:???
>>715
after_filterじゃいかんの?
718nobodyさん:2010/01/21(木) 11:03:39 ID:???
scaffoldした時のshowアクションの挙動を止めたいんですが、何か方法はありますか?

新しい独自のアクション(hoge)を追加したときに、コントローラ名/hogeというアドレスに
アクセスすると、showアクションでIDがhogeという風に動作してしまいます

route.rbにて:exceptや:onlyなどを用いてshowアクションを取り除くようにしてみましたが、いずれも駄目でした
719nobodyさん:2010/01/21(木) 19:03:10 ID:???
migrationの質問です。

DBのmigrationでself.downに元に戻す処理を書くと思うのですが、
カラムの追加や変更等簡単な処理は元に戻す処理は簡単にかけるのですが、
例えば、仕様変更であるキーの重複するレコードを削除するとか、その処理を元に戻す場合だと
処理が複雑で簡単には元に戻せなかったりしませんか?

そのような場合、self.downをどのように書いたものでしょうか?
self.upで変更するレコードを外部ファイルにまるごと(mysqldumpとかで)ダンプして、
self.downで戻すときはダンプしたのを(mysqlコマンドに)つっこむとかそういうったことしないといけないものなのでしょうか?

今は、整合性が取れなくならない場合(カラムとかをいじらないとか)で元に戻す処理が複雑な場合は、
self.downを書かなかったりしますが、どうしたものかなーと。

運用サーバーの方ではcapistranoでデプロイでdb:migrateをかけるときには
自動でmysqldumpするようにしかけてあるのでバックアップ自体は大丈夫なのですが・・・
720nobodyさん:2010/01/21(木) 19:22:34 ID:???
>>718
rake routesしてルーティングを確かめるんだ!!
721707:2010/01/21(木) 22:01:06 ID:???
>>716
>jsばっかり=フロントエンドがAJAX(JavaScript)、バックエンド処理がRails

そんな感じでした。
フロントエンドで、SproutCore(始めて知ったのですが)を使用してました。
サーバーがRailsで、作りとしては、
最初にガサっとサーバーからデータを取ってきて、
フロントエンドで加工して使いまわして、
必要なときだけサーバーとデータをやり取りする感じでした。

>(それでもmodelsがjsばっかりはない気が?)
クライアント側を見ていました。
SproutCoreの構成がRailsによく似てたので。。。
サーバー側では、ちゃんとrbファイルがありました。

また、ブラウザでソースみたら1万行近く云々と言っていたのは
どうも、SproutCoreはビルドできるらしく、1つに固められた
rhtmlファイルのソースを閲覧していたみたいです。

今、試しに元のソースをビルドしようとしたら、文法エラー
undefined local variable or method 'output'
でビルドに失敗したので、このソースは本当にビルドできるのか
先方に確認中です。

まさかとは思いますが、Windowsではビルドできない(Ruby1.8.6.111)
なんてことはないですよね。。。

また何か進展がありましたら、報告させて頂こうと思ってます。
ありがとうございました。
722nobodyさん:2010/01/22(金) 01:43:39 ID:???
>>715
いまのところ rails 標準にはないので、http://github.com/xtoddx/before_render のようなのを使うしか。
before_renderで検索するとこれの他にもいくつか実装が見つかる。

>>718
map.resources :items, :collection => [:hoge]
などと書けば良いかと。
詳しくはこの辺で http://d.hatena.ne.jp/zariganitosh/20080203/1202091772
723nobodyさん:2010/01/22(金) 01:57:31 ID:???
>>720
なるほど
showに関するmapが先に呼び込まれていて、そちらが優先されていることがわかりました
自作アクションに関してconnectを使い、これをshowよりも先に記述するとうまくいきました
ありがとうございました
724nobodyさん:2010/01/22(金) 02:05:07 ID:???
>>722
配列でアクションを指定するのですね
以前は以下のように指定していたのですが、これが原因だったみたいです
map.resources :items, :collection => {:hoge => :get}
これを先程のように配列指定にしたらすんなり解決しました
ありがとうございます
725nobodyさん:2010/01/23(土) 05:44:49 ID:???
>>721
> まさかとは思いますが、Windowsではビルドできない(Ruby1.8.6.111)

そういうことって普通にあるよ。Railsプロジェクトならなおさらじゃないかな。
Rails開発はWindows環境はマイナー環境だと思うのでちゅうい
そういうときは、coLinuxとかVMWare使う
あとはRuby 1.8.7に上げてみるとか。
726704:2010/01/23(土) 05:49:49 ID:???
>>715
ありがとうございます。

実はあの後、layouts/appliacation.html.erbの先頭に @hoge = hogehoge のように書くと
他のyieldするerbからは参照出きなくて困っておりました。

before_renderでgithub等あさってみます。すでにあるということは需要はある要望なんですねw

>>717
after_filterだと変数参照出きませんでした。レンダリング後によばれるのかな?うーんん。
727nobodyさん:2010/01/23(土) 09:43:12 ID:???
after_filterは、ページ全体をgzip圧縮するとか、携帯向けにShift_JIS+半角仮名
にするとかだねー。
728nobodyさん:2010/01/23(土) 17:17:27 ID:???
特定ページのログを出力しない方法ってないのかな?

ファイル管理のコントローラだけ、ページ表示するたびにいっぱいログが出るので、
ログを出さないようにしたいんだけど、情報無いのよね。。。
他のページはデフォルトのログ出力のままがいい。

コントローラでconfigのlogレベルをいじろうと思ったんだけど、
configなんてのは知らないって怒られちゃった。

動的にconfigいじるのは無理なのかな。
loggerのレベルはinfoでやってます。

あとは、ログレベルをwarnにして、必要なログを手で入れてくかだな。。。
729nobodyさん:2010/01/23(土) 17:46:50 ID:???
Rails.logger.level = Rails.logger.class.const_get(:FATAL)

3とか4とかベタに書いてもいいけど。

730728:2010/01/23(土) 18:27:59 ID:???
>>729
ありがとうございます。
configの動的変更できました。

ただ、途中までのログが出てしまいました。
ファイル管理のコントローラに以下追記。
before_filter :set_log_rebel_warn

Processing FilesController#show (for 127.0.0.1 at 2010-01-23 18:18:40) [GET]
・・・

このログを出してるところの前でクリアするか、
出そうとしてるログを消すようにしたらいけるかな。(出来るのか?)
もうチョイ調べてやってみます。

助かりましたー!!
731nobodyさん:2010/01/23(土) 19:55:54 ID:???
ActionController::Base#log_processing
ActionController::Base#log_processing_for_request_id
ActionController::Base#log_processing_for_parameters
あたりをFilesControllerでオーバーライドしてみるとか。

732nobodyさん:2010/01/23(土) 20:02:09 ID:???
>>707
707に同情するよ。Rails以上にSproutCoreでUIを書くのが大変だと思う。
多分テスト無いよね?なかったらそれこそ地獄だよ。
733nobodyさん:2010/01/23(土) 20:43:41 ID:???
<%= link_to 'show', :action => 'show', :id => user %>
<%= link_to 'destroy', :action => 'destroy', :id => user %>

destroy クリックしたら show のページに飛ばされる
画面上の URL が両方 /usr/id になっとるしわけ分からん/(^o^)\
734nobodyさん:2010/01/23(土) 20:49:09 ID:???
:method 指定したらできたよー

<%= link_to 'destroy', { :action => 'destroy', :id => user }, :method => 'delete' %>
735nobodyさん:2010/01/23(土) 21:11:18 ID:???
ブラウザがDELETEやPUTにまともに対応する日は来るのだろうか。
736728:2010/01/24(日) 09:31:59 ID:???
>>731
ActionController::Base#log_processing
をオーバライドでいけました。
ありがとうございます。助かりました。
いやしかし、rorはいいですなー。楽だー!!
737nobodyさん:2010/01/24(日) 14:35:45 ID:???
django も忘れないで~
738nobodyさん:2010/01/24(日) 14:59:53 ID:???
ど・・・Django
739707:2010/01/24(日) 15:24:37 ID:???
>>725
ご指摘ありがとうございます。
sroutcoreのバージョンを0.9.11に戻したらビルドできました。
が、ビルド後出来上がったrhtml,jsファイルが本番と別物の欠陥品でした。
ビルド環境が腐ってるのか、ソースが腐ってるのかわからない状態です。

作成者にVMWareで環境(Macらしいです)もらうことも考えてますが、
PHPでその部分だけ一から作り直すことになるかもしれないです。
もともと社内で使う生産管理システムで、あまりリッチなUIは必要なく
遅い、ブラウザが落ちる等評判もよくないみたいなので。。。

>>732
>707に同情するよ。Rails以上にSproutCoreでUIを書くのが大変だと思う。
ですね。
最初何が何やらわからなかったです。
ただ、大体当たりはついてて修正プログラムも作成はしてあります。
環境が構築できてないので確認は全く出来てませんけど。。。

>多分テスト無いよね?なかったらそれこそ地獄だよ。
テストはあるにはありますが、ユニットテストというよりは、
開発者が色々試した結果を置いてあるだけで、
後でソースを修正する人のためのではないかと。。。

ただ、ブラウザをプラットフォームにして、システム構築する手法に
触れたのは良かったです。
AJAXは、”サーバーとデータやり取りしても画面遷移しない技術”
程度の認識だったので新鮮でした。
将来主流になってくるかもしれないですね。
740nobodyさん:2010/01/24(日) 17:36:00 ID:???
RoR で↓これは使えますか?
ttp://www.smartclient.com/featureExplorer.jsp
741nobodyさん:2010/01/24(日) 17:42:49 ID:???
>>739
10年後くらいやね
742nobodyさん:2010/01/24(日) 22:01:02 ID:???
10年って、10年前がどんな状態だったか考えてのことか?
743nobodyさん:2010/01/25(月) 13:29:59 ID:???
>>739
すごいなぁ、社内向けのシステムでSproutCore使うとか、
作り手のオナニーか、見積金額上積みのためとしか思えん。
フルスタックのUIフレームワークなら、まだしもdojoの方がメジャーだと思うし。

それに社内のブラウザが全部ChromeかSafariでも無い限り、
まずパフォーマンスに問題が出るとおもう。

Ajaxというか、正しくはJavascriptUIだと思うんだけど、
そういうのは技術的にもう普通だと思う。
GMailやGoogleReaderは多くの人が使ってるだろうし、
GoogleWaveもぜんぶJavascriptでできてる。
ただ、どうしてもコストがかかるので、
低予算の案件が多いWeb制作業界では浸透しないんだと思う。


PHPで一から作り直すくらいなら、Railsだけで作り直してみたらどうでしょうか。
Viewの作成と、Controllerの手直しだけで動くようになる気がします。
744nobodyさん:2010/01/25(月) 13:50:05 ID:???
画面遷移ない方が低コストに出来ると思うけどなぁ
745nobodyさん:2010/01/25(月) 14:33:18 ID:???
>>700
>>701
>>703
>>706
レスありがとうございました。
Head Firstシリーズで始めようと思います。
746nobodyさん:2010/01/25(月) 16:13:21 ID:???
>>744
もしそうなら是非やり方を教えて欲しい。

デスクトップアプリみたいにFSMでGUIを作ろうとするとどうしてもテストが破綻する。
かといってテスト無しでGUIを作り込むと、あっという間にバグの温床になるし。

現状どうやってるのか、参考になるサイト・書籍などもあればお願いします。
747nobodyさん:2010/01/25(月) 17:15:57 ID:???
その辺が整備されて実用になるのが10年後っていう意味かな
748nobodyさん:2010/01/25(月) 19:00:20 ID:???
Dojoもそうだし、Extとか使うと、どうしてもJavascriptUI(というのか?)をメインにしないと、
Javascriptファイルの読み込み時間が長くて使えたもんじゃなかった。
だけど、Extメインにすると、Javascript側の記述がもりもりになって、
サーバ側のフレームワークがなんであってもほぼ関係なくなる、と思う。
Javaだろうが、Rubyだろうが、PHPだろうが。
Javascriptの技術(というか、使ってるJavascriptのライブラリの把握度)の方が重要になってくる。
俺はJavascriptってかなり難しい言語だと思ってて、人にはおすすめ出来ないので、
JavascriptUIは使わないようにしてる。
サーバ側の言語と、Javascript両方ともに熟知して貰わないといけないから。
749nobodyさん:2010/01/25(月) 19:53:41 ID:zfSMIsHp

How to easily use Rails 3 now ? tomafro.net

http://tomafro.net/2010/01/how-to-use-rails3-gems-now
750nobodyさん:2010/01/26(火) 06:56:48 ID:ATL7yxma
>>703 とか >>706 も書いてたけど、最近出た Head First Rails って本が超読みやすくてわかりやすくてマジ感動した。
初心者は2ちゃんとか見てる暇あったらとりあえず全員これ買って読むがよいと思うんだ。
751707:2010/01/26(火) 10:01:38 ID:???
続報です。
製作者が元の環境を消してて環境再現ができない。
作り直しは受注元にダメと言われる、と完全にオワタ\(^o^)/
と思ってましたが、どうにかこうにかビルドできる環境を構築できました。
gemとsproutcoreのバージョンを変え、Javaインストールしてetc...

何とかなりそうです。
皆さん。色々とありがとうございました。

>>743
>作り手のオナニーか、見積金額上積みのためとしか思えん。
そうだと思います。金額でも揉めたみたいです。。。

>ただ、どうしてもコストがかかるので、
>低予算の案件が多いWeb制作業界では浸透しないんだと思う。
その点は同意ですが、JavascriptUIの使用者の本命は、
Web製作業界ではなくアプリ製作者だと思います。
ブラウザが今よりも安定・高速・多機能になり、クラウドが一般にも
普及したら、ブラウザ上でゲーム、アプリを作成するのが
主流になるんじゃないかなと。
その方が、ユーザーの負担が減り自由度があがりますし。。。

将来的にはアプリの起動は、OSからブラウザに移行する気がします。
752nobodyさん:2010/01/26(火) 12:54:27 ID:???
>>707 は6,7年くらい前からタイムスリップしてきたのかと小一時間w
753nobodyさん:2010/01/26(火) 14:34:11 ID:???
懲役7年
754nobodyさん:2010/01/27(水) 01:12:32 ID:???
rails(linux)でmssql使いたいんだけど

UnixODBC
FreeTDS
activerecord-odbc-adapter
Ruby ODBC

入れりゃいいの?


あとgemで見つけた
activerecord-sqlserver-adapter って何?
755nobodyさん:2010/01/27(水) 01:43:58 ID:???
そんな口の利き方のやつには絶対に教えない
756nobodyさん:2010/01/27(水) 08:41:54 ID:???
ブラウザが高機能になって安定高速に成った歴史なんて無いしな。
シンプルイズベストで、余計な機能そぎ落としたほうが高速安定すると思うよ。
もうJSとHTMLの拡張辞めればいいw みんなでHTML1.0に戻ろうw

ゲーム、アプリは普通にjavaで組むのが、グーグル携帯の先に有ると思うよ。
googleクラスのハカーでもchromeブラウザ上で全て実行させるなんて言い出してないし。

犬上で動くodbc-mssql driverが無いと思うw
jruby経由でjdbcでごにょごにょでもすれば? mssql捨てるのが一番だが。
757nobodyさん:2010/01/27(水) 09:59:14 ID:???
ここでいいのかどうかわからないのですが。

linodeでRailsを動かしている方いらっしゃいませんか。
どのプランで、どういう構成で、どのくらいパフォーマンスが出ているか
分かる範囲で教えていただけると助かります。

よろしくお願いします。
758nobodyさん:2010/01/27(水) 11:42:12 ID:???
>googleクラスのハカーでもchromeブラウザ上で全て実行させるなんて言い出してないし。

Chrome OS
759nobodyさん:2010/01/27(水) 12:57:30 ID:vbYrOD4B
760nobodyさん:2010/01/27(水) 21:35:32 ID:???
html.erbでコメントを入れる場合、
<!-- コメント -->
<% # コメント %>
どっちでも一応コメントになりますが、どっちの方が正しいやり方でしょうか?
761nobodyさん:2010/01/27(水) 21:52:40 ID:???
そもそも<!-- -->で囲んでも、ERBの視点ではコメントではない。
ERBはHTML以外の中にも書けることを思い出そう。

<!-- <% RUBY %> --> と書くと RUBY はRubyコードとして評価される
ので、<%# %> にしたほうがよいと思う。

たとえば、
<!-- <% 1 + %> --> → Rubyコードが文法エラーになる。
762nobodyさん:2010/01/27(水) 21:55:07 ID:???
あ、↑Rubyコードをコメント化する場合の話しかしてないや。

出力HTMLソースの中にコメントとして現れて欲しい部分は<!-- -->の中に。
Ruby評価中に解釈したくないRubyコード片は <%# %> の中で。
763760:2010/01/27(水) 22:03:08 ID:???
ありがとうございます。
なるほど…どのレベルでコメントになるかっていう違いあるんですね。そこまで頭が回ってなかった。
基本的には<%# %>でほとんど済みそうですね。
HTMLに残さなきゃいけないコメント、、、そんな場面はあり得るのかな?
764707:2010/01/28(木) 01:50:38 ID:???
>>752
古いっすか?私の考えw
まあ、Webを何年もやってきた同僚の意見は違うし、
私の見当違いである可能性は高いですね。

でもそうなると、ブラウザ上でシステム構築するのは
主流にはならない気がします。
ユーザーが望んでいるのは、付加価値よりも
安く・簡単・便利に使えることだと思うので。

ちょうどWEBメールが普及したように、
WEB画面がリッチになることには金出さなくても
安く簡単にダウンロード出来て、設定する必要もなく
どのパソコンでも動くアプリなら性能落ちても金出すでしょう。

でも本当に難しいでしょうね。そんなブラウザ作るのは。。。

>>756
>ゲーム、アプリは普通にjavaで組むのが、グーグル携帯の先に有ると思うよ。
そうなるでしょうね。
実際、携帯でアプリ作成するのが増えてきてません?

でも、スペックがPCに比較して落ちるのと、
結局、これまでのPC同様、機種依存が出てくるので
個人的にはブラウザに頑張ってもらいたいのですが。。。
765707:2010/01/28(木) 01:55:02 ID:???
スレ違いの話題を長々とすいません。
もう止めときます。

ちなみに修正まだやっとります。
もうこのプログラムやだw
766nobodyさん:2010/01/28(木) 02:06:38 ID:???
HTML4.0以前、どれだけ苦労したか知らないバカがいるのか
767nobodyさん:2010/01/28(木) 02:28:56 ID:???
>>707が結局何を言いたいのかさっぱり分からん
768nobodyさん:2010/01/28(木) 03:30:24 ID:???
>・ ブラウザでソースをみたら、ログイン画面なのに1万行近くソースがある。

わろすw

ajaxもどきでもやってんだろうな
jQueryのソース全部貼り付けたとかじゃないかw
769nobodyさん:2010/01/28(木) 15:24:22 ID:???
>>768
おまえ>>707以降のレスを全く見てないだろ
ほかの影響を考えないで脊髄反射でプログラムを書き換えるタイプだな
770nobodyさん:2010/01/29(金) 00:30:31 ID:SeyjXxxZ
771707:2010/01/29(金) 04:03:11 ID:???
>>769
ははは。まあまあ。

>>767
私が言いたいのは、宇宙開闢137億年の歴史に比べたら
納期を守れないやら、プログラムが読めないなどは
ほんの些細な問題だということです。






もうだめぽ。。。。
772nobodyさん:2010/01/29(金) 16:59:48 ID:???
ちょっと質問、Rails 2.3.5のプロジェクトなんですが、
国際化は特に考えないで作ってきたんですが、
プラグインが英語で国際化考えてない感じで手を加えたいんですが、
プラグインの国際化ってどうやるものなんでしょう?

i18nとかを使うんでしょうか?
この辺はどこらの資料を見ればいいですか?

今は英語の部分を日本語にべた書き換えでリリースでも別にいいんですが、
後で英語のプラグイン本家にパッチ送って反映してもらいたいときに、メッセージを国際化しときたいんです。
773nobodyさん:2010/01/29(金) 18:57:57 ID:???
そのプラグインの名前は?
774nobodyさん:2010/01/29(金) 21:24:31 ID:???
おれもそうオモタ
775nobodyさん:2010/01/29(金) 22:55:58 ID:azIwv80e
776nobodyさん:2010/01/30(土) 02:07:12 ID:???
ちゃんとi18n実装してくれるなら助かるが、なんちゃって日本語実装だとみんなが不幸に成るだけ。
そういう中途半端な日本語対応パッチでみんな苦しんで来てるし。

PC用のUTFと携帯用のSJISとメール用のJISぐらいはまともに実装しないとねえ。
777nobodyさん:2010/01/30(土) 02:15:30 ID:???
自分でプラグイン作ればいいじゃん
そんな大変なことではないんだが
778nobodyさん:2010/01/30(土) 02:20:08 ID:???
railsのwebサーバをどうしようか悩んでる。
passengerが楽でいいんだけど
将来的に、ec2でスケールアウトさせることを考えると
apache(ngjinx/lighttpd)+mod_proxy_balancer+mongrel_cluster
とかの方がいいの?
779nobodyさん:2010/01/30(土) 03:05:38 ID:???
まずはそこまで支持されるサービスを作りなさい
780nobodyさん:2010/01/30(土) 03:15:12 ID:???
>>779
確かにそうなんだが
ec2に乗せるの前提で話がすすんでるんだ。

猛者はおらんかのぉ。wakame便利そうだけど、正式リリースまだだし。
781nobodyさん:2010/01/30(土) 04:41:34 ID:???
Rackの価値ゼロだな
782nobodyさん:2010/01/30(土) 04:49:05 ID:???
うちの会社はrails使うときはapache以外選択肢無いなぁ
783nobodyさん:2010/01/30(土) 15:57:35 ID:???
テーブルのフィールドの説明ってさ,
マイグレーションのファイルにかくべき?
モデルに書くべき?
784nobodyさん:2010/01/30(土) 16:27:22 ID:???
WordとかExcelとか
カラムの意味を調べるのに毎回ソース嫁とか言われたらたまらん
785nobodyさん:2010/01/30(土) 17:00:44 ID:???
せっかくのアジャイル思考フレームワークなのに
DB構造変わるたびに毎回Excel編集しろとか言われたらたまらんな
786nobodyさん:2010/01/30(土) 17:35:17 ID:???
編集するのは1人、閲覧するのはN人
どちらを優先すべきかは言うまでもない

それにそんなにコロコロ構造は変わらん
変わるのなら最初にちゃんと設計しないから
デスマでよくあるけどな
787nobodyさん:2010/01/30(土) 17:59:45 ID:???
>>786
> 編集するのは1人、閲覧するのはN人
え?え?
788nobodyさん:2010/01/30(土) 18:56:53 ID:???
>>783
まず、マイグレーションでもモデルでもいいがソース上に書いておくべきだと思う。
開発中はソースだけ見れば済むようにしたい。
ソースだけでは分かりづらいなら補足資料は必要だけども。

テーブル定義書は納品物として必要だけど、ドキュメント類は開発が終了してから提出するという事で顧客と事前に約束を取り付けておく。
開発が終了したら、CSEなどのツールで自動生成。そのファイルに日本語の説明を書いていく。
っていうのが自社のやり方。
789nobodyさん:2010/01/30(土) 19:01:12 ID:???
仕事のスタイル次第だね
うちは自社サービスだけだからドキュメント自体ほとんど存在しない。
790772:2010/01/30(土) 19:17:19 ID:???
>>775
公式ガイドみてます。
プラグインところも見ているんですが、
The Basics of Creating Rails Plugins
http://guides.rubyonrails.org/plugins.html

本体だとconfig/lang/以下におけばいいわけですが、
プラグインの場合は、vendor/plugins/hoge/ 以下にconfi/lang/*.yml を配置すればOKなのかな。

>>776
??よくわからん

>>777
今はプラグインをそのまま修正して日本語化してます
791nobodyさん:2010/01/30(土) 19:17:46 ID:???
テストケースに書いておくのがBDDであり
RSpecやCucumberだろう
792772:2010/01/30(土) 19:18:37 ID:???
>>773
プラグインはこれです。
phronos's rails_datatables at master - GitHub
http://github.com/phronos/rails_datatables
793nobodyさん:2010/01/30(土) 19:41:11 ID:???
DataTablesってすごいねぇ。

phronos'sってどうゆう意味だろ?
794nobodyさん:2010/01/31(日) 18:17:54 ID:???
phronosさんの作ったrails_datatablesってこと。
GitHubのプロジェクトトップページのタイトルは、
<author>'s <project-name> at master - GitHub
となる。
795nobodyさん:2010/02/01(月) 05:15:16 ID:???
なお、masterは、あるgitリポジトリのデフォルトのブランチのこと。
796nobodyさん:2010/02/01(月) 12:37:55 ID:???
parents, childrenというテーブルがあったとして
parents...id, child1, child2というカラムを持っている。それぞれchildrenのidが入る
children...id, parents_idというカラムを持っている

このようなときに、ある時はchild1を、ある時はchild2をキーにして
has_manyでのテーブル結合を切り替えたいのですが、こういう方法は無理なんでしょうか

今は両方ともhas_manyでparentsに追加しているのですが、切り替えができたら嬉しい
797nobodyさん:2010/02/01(月) 17:47:36 ID:/Gi8FxAx
http://lingr.com/
スケールアウトからスケールアップへの回帰
http://japan.cnet.com/blog/kenn/2010/01/12/entry_27036420/
http://www.slicehost.com/


コピペ運動会 http://copipe.cureblack.com/
700万PVのRails製サイトが月$60のVPS(メモリ1GB)で動かせるという話
http://togetter.com/li/4514
http://www.linode.com/


http://gladiators.jp/
オンラインRPGの運営をはじめて1ヶ月経った
環境としては、OSはUbuntuサーバ版なんですが、実はVMware上で動かしていて、ホストOSはWindows XP Professional
http://blog.pettan.jp/archives/50938293.html
798nobodyさん:2010/02/01(月) 18:27:25 ID:???
どこまで必死なんだよ
宣伝うぜぇ死ねよ
799nobodyさん:2010/02/01(月) 18:40:58 ID:???
>>796
parentsテーブルがchild1とchild2のIDを持っているということは、やりたいことは
parent.children1 や parent.children2 (Parent has_many Child)
ではなく
parent.child1 や parent.child2
であってる?

class Parent < ActiveRecord::Base
belongs_to :child1, :class_name => 'Child', :foreign_key => 'child1'
belongs_to :child2, :class_name => 'Child', :foreign_key => 'child2'
end
class Child < ActiveRecord::Base
has_one :parent
end

でいいと思ったんだけど、これじゃchild1とchild2のどっちで結合すればいいか
特定できないからchild側からはparent参照できないのか。
(has_one parent1とかすれば可だけど)
800nobodyさん:2010/02/01(月) 23:11:35 ID:???
>>798
実働報告なんてほぼ皆無なんだからこちらとしてはありがてーわ。

自治棒は消えろ
801nobodyさん:2010/02/02(火) 14:14:08 ID:???
>>799
:class_nameというのがあるんですね。なんとかできそうです
ありがとうございます
802nobodyさん:2010/02/02(火) 20:25:53 ID:tGNPNfj/
Rails 3 beta is almost ready for public testing. We're just hammering out the last bugs in Bundler. Stay tuned.
about 10 hours ago from Tweetie

dhh
http://twitter.com/dhh/status/8522612662
803nobodyさん:2010/02/02(火) 21:05:33 ID:tGNPNfj/
804nobodyさん:2010/02/02(火) 22:47:00 ID:???
2系から何が変わるんだろ…十分完成されたフレームワークだと思ってたのになぁ
805nobodyさん:2010/02/03(水) 01:52:04 ID:???
フレームワーク本体を選べるようになるんじゃないの?
中心部分をRailsでつくったり、Marbでつくったりとか。
多機能にしたいならRailsで
シンプルにしたいのならMerbでとか
806nobodyさん:2010/02/03(水) 02:02:40 ID:???
RailsってCでいうmakeファイル書き上げるような物なんだな
scaffoldコマンドを実行したら基本的な骨組みができあがるかと思ってたよ
ruby script/generateってコマンド打っていても意味を理解していなかったよ。

またscaffoldで作成しちゃったら戻すことは出来ないようだな。
タイムスタンプを利用したファイルをどんどん作って行くみたいだけど
人の手でソースに手を入れた後に、コマンド実行しても大丈夫って事かな?

807nobodyさん:2010/02/03(水) 02:04:42 ID:???
え?
808nobodyさん:2010/02/03(水) 02:55:16 ID:YvzJimsv

Railsプログラマのための英語 Part 1 (English) - Smart.fm
http://smart.fm/goals/1591/content
809nobodyさん:2010/02/03(水) 03:56:45 ID:???
>>806
なんかちょっと勘違いしてませんか?
810nobodyさん:2010/02/03(水) 05:54:39 ID:YvzJimsv
Rails 3 is coming! The first beta release of the new version is right around the corner
and it should be released today or tomorrow…
the release notes are already in the master branch.
http://railslove.com/weblog/2010/02/02/on-the-way-to-rails-3-a-link-list/


http://github.com/rails/rails/commit/428bdb50631ba03847367a15fedb2289269cd789
811nobodyさん:2010/02/03(水) 05:56:32 ID:YvzJimsv
812nobodyさん:2010/02/03(水) 06:58:55 ID:???
ruby script/generate scaffold ********
うごかない。

rake db migrate
うごくようになる。
813nobodyさん:2010/02/03(水) 10:45:44 ID:???
Rails 3リリースオメ!!

>>797
こういう事例は紹介してもらえるとありがたい。

しかし、ホストOSがWindowsの仮想マシンでまともに動くのかよw わろた

>>806
scaf
814nobodyさん:2010/02/03(水) 10:50:18 ID:???
>>806
ごめん、途中で送信しちゃった

makeは関係ないよ。
makeをruby用にパクッたrakeのRakefileとかはrailsにもあるけど、それのことじゃないでしょ?

多分、宣言的に書くところが多いのでそう思っているだけだと思う。
.rbとか.erbはRubyのスクリプトだよ。ちゃんとした言語だよ。
ライブラリがいろいろやってくれるから、宣言したっぽくかけるけど、ちゃんとスクリプトはそことおっているよ。

scaffoldで作成したのを消すのは、destroyつかえばいけるはずだよ。
ruby script/destroy scaffold ********

その辺のことはrailsガイド読んでね。
Ruby on Rails guides
http://guides.rubyonrails.org/

後は書籍読むとか。最近は Head first のrailsのがオススメらしいよ。

> タイムスタンプを利用したファイルをどんどん作って行くみたいだけど
これはよくわからん???
同じscaffoldを実行しても、編集した後は上書きしようとしていちいち聞いてくるのは危ないからそうなっているとしか
815nobodyさん:2010/02/03(水) 11:05:34 ID:???
>>813
リリースされたわけではない。
816nobodyさん:2010/02/03(水) 11:06:14 ID:???
>>814
>> タイムスタンプを利用したファイルをどんどん作って行くみたいだけど
>これはよくわからん???

migration スクリプトのことかと。
817nobodyさん:2010/02/03(水) 11:14:48 ID:???
818nobodyさん:2010/02/03(水) 11:27:26 ID:???
>>815
あれ?リリースノートでただけなのか。失礼したw
819nobodyさん:2010/02/03(水) 14:42:44 ID:???
てすと
820nobodyさん:2010/02/03(水) 18:55:02 ID:???
ちょっとした質問です。
unko_chinkoヘルパーが定義されていた場合に、
コントローラーからunko_chinkoヘルパーをどうしてもどうしても呼びたくなった場合、
コントローラー内で以下のように書くと思いますが、

  ApplicationController.helpers.unko_chinko

ApplicationControllerコントローラー派生のコントローラーなら、
  self.helpers.unko_chinko
でいけそうなものなのですが、これではundefinedと言われてしまいます。

これはなんでなんでしょうか?
821nobodyさん:2010/02/03(水) 22:13:53 ID:???
ヒント
ApplicationController.classは何でしょう。
また、その文脈でself.classは何でしょう。
822nobodyさん:2010/02/03(水) 22:16:06 ID:???
どうでもいいけど
>コントローラー内で以下のように書くと思いますが、
>ApplicationController.helpers.unko_chinko

helper :unko_chinko
じゃね?
823nobodyさん:2010/02/03(水) 22:26:58 ID:???
俺がRails3に一番期待することはサーバーのメモリ節約なのだが
あまりそういう方向には進まなかったみたいね
1年ぐらい前はめちゃくちゃメモリ節約できるようになるとの触れ込みだったのに
824nobodyさん:2010/02/03(水) 23:08:00 ID:???
>1年ぐらい前はめちゃくちゃメモリ節約できるようになるとの触れ込みだったのに

え?
825nobodyさん:2010/02/04(木) 02:08:23 ID:???
っつーか Rails つかってるとすぐメモリ使い切って
数日に一回は再起動しないといけなくなるw
826nobodyさん:2010/02/04(木) 04:34:13 ID:???
>>824
違うの?
827nobodyさん:2010/02/04(木) 05:41:15 ID:???
railsでメモリ効率とか…
元がrubyなんだし速度とかメモリとか期待しちゃ駄目だ
828nobodyさん:2010/02/04(木) 06:20:25 ID:???
Passengerでインスタンス立ち上げすぎとか

> Railsインスタンスプロセスの立ち上がりすぎ
>
> PassengerMaxPoolSizeを適切に設定してないとそうなることがある。

Passengerがメモリを食いすぎるとき - ひげろぐ
http://brass.to/blog/passenger_memory_tuning.html
829nobodyさん:2010/02/04(木) 06:23:17 ID:???
あとはこの辺

Phusion Passenger users guide
http://www.modrails.com/documentation/Users%20guide.html#_resource_control_and_optimization_options
Passenger のリソース最適化オプション
http://www.sssg.org/blogs/naoya/archives/1087
830nobodyさん:2010/02/04(木) 09:21:57 ID:???
>>827
でもさ、ここ数年のシェアの伸び悩みは激安共用レンサバではロクに動かせないからって思わない?PHPみたいにさくらの共用でも動かせるようになれば皆もっと飛びつくのに
831nobodyさん:2010/02/04(木) 10:29:19 ID:???
いや2000円台で快適に動かせる
2000円台というと少し高いように思えるが、本質はRailsで動かしたいアプリがないからだと思う
本当に動かしたいアプリがあれば普通にそれくらい出すと思うよ
やっぱり 利用者>>>>>>開発者 じゃないとな
832nobodyさん:2010/02/04(木) 12:52:19 ID:???
海外 VPS なら $6/month くらいからあるよ
833nobodyさん:2010/02/04(木) 18:29:32 ID:???
いや違う
PHPの偉大なところはFTPでアップすればそれだけで動くところ
railsもpassengerのお陰でだいぶ楽になったけど、それでも差は歴然としてる
834nobodyさん:2010/02/04(木) 20:57:57 ID:G38u6Z+m
【WEB人・詳報版】路上でプログラミング - MSN産経ニュース
http://sankei.jp.msn.com/economy/it/100204/its1002040501000-n1.htm
「Ruby on Rails」を使うようになって1カ月後のことで、
開発期間はおよそ3時間。

http://ssig33.com/blog/2010-02-04-1.html

金くれ http://kanekure.ssig33.com/


835nobodyさん:2010/02/04(木) 21:07:01 ID:G38u6Z+m
836nobodyさん:2010/02/04(木) 22:44:09 ID:G38u6Z+m
UK STUDIO - プログラマの報酬について
http://ukstudio.jp/2010/02/04/programmers_pay/
例えば、優秀な人であればコード量は少なく労働時間も短く作れるものが、
他の人であればコードは肥大化し労働時間も長くなるだろう。
その場合、後者の方が残業代なども含めて給与が高くなるだろう。

結局のところ、プログラマが作りだす価値を定量的に評価できないのが問題だとは思うけど、
そこを解決する術が正直わからない。
837nobodyさん:2010/02/04(木) 22:53:36 ID:G38u6Z+m
プログラマーって本当に労働者なのか?
http://blog.livedoor.jp/dankogai/archives/50766218.html
例えば、「コード1行につき10円」という取り決めがあったとする。
そしてプログラムの中に要素数1000からなる配列を初期化するルーチンが必要だったとする。
1万10円
40円
10円
838nobodyさん:2010/02/04(木) 23:29:31 ID:???
>>832
VPSスレじゃないからアレだけど詳しく

>>835
> http://prgmr.com/xen/
やすっ $6は128Mメモリだから無理だけど、512MBなら$12か、これは試してみるかw

>>834
「金くれ」はたしかオープンソースじゃなかったか?githubにあった気がする(といったもscaffoldみたいなソースだが)
839nobodyさん:2010/02/04(木) 23:34:40 ID:???
>833
ダウト。PHPでも設定は必要。
Rails だってあらかじめ設定しておけばFTPなりなんなりでアップロードすれば使える。
このご時世でFTPなんでありえんと思うが。
840nobodyさん:2010/02/05(金) 00:50:50 ID:???
WordpressがRails製だったら、こぞってサポートされるだろうよ
841nobodyさん:2010/02/05(金) 05:00:34 ID:???
>>837
実際メインテナンスを依頼されてソースを見たら
ループじゃなくて数行x1000回(一部パラメータ値だけ変えて)繰り返してあるのを見たことがある
842nobodyさん:2010/02/05(金) 05:16:05 ID:???
>>839
いやいや、そういうことじゃないよね
実際問題railsアプリをそのままあげて動かせる共用サーバがどの位あるんだって話で。無いに等しいよね。
843nobodyさん:2010/02/05(金) 07:32:33 ID:???
VPSなら余裕じゃん
最近は安いしひもじい学生でも何とかなるだろ
どんだけ貧乏なんだ
844nobodyさん:2010/02/05(金) 08:58:38 ID:???
>>843
俺は仕事とプライベート含めてむしろ大量に借りてる。でもそんな話をしてるんじゃない。

railsの実行環境がPHPに比べれば敷居が高いことがネックになり続けてて、それはrailsにとって不幸じゃない?ってことが言いたい。
VPSなら可能ってそりゃ当たり前だよ。でも世間でPHPのシェアを支えてる一部の層はrootを持ってサーバー管理などできやしない。
彼らはアプリ開発はできてもサーバーの運用知識はない。

railsの欠点はサーバ管理技術が要求されることが多すぎると思うんだ。
cakePHPなんてサーバーの知識必要ないからWebアプリ層しかわからない開発者でもさくら共用あたりで手軽に動かしてるよね。
それこそFTPで上げるだけで動く。差は歴然。
845nobodyさん:2010/02/05(金) 09:32:55 ID:???
う〜ん結局何が言いたいのかよく分からん。
個人的にそういう底辺層をRailsに取り込みたいとは全く思わない。
Railsの開発者は現状でもやる気満々だし、自分も満足してるし。
初心者でも誰でも使える、みたいな触れ込みで宣伝されるのが一番嫌だな
846nobodyさん:2010/02/05(金) 09:34:39 ID:???
>842
日本には無いねー。
海外だといくつかあるよ。
http://www.railshosting.org/
http://heroku.com/

番外としては http://www.radiantmachine.com/ が RadiantCMS のホスティングをしてるな。
847nobodyさん:2010/02/05(金) 09:35:32 ID:???
>845
同意。
848nobodyさん:2010/02/05(金) 15:37:40 ID:???
>>846
EngineYardも忘れないで。
849nobodyさん:2010/02/05(金) 16:26:30 ID:???
railsの運用は現実的じゃないと思うけどな。
一応、php見たいに使えるよというだけで。

だから、rails案件からjavaへの移行が多い。
850nobodyさん:2010/02/05(金) 17:22:42 ID:???
一応初心者ですが
UbuntuServerを利用してRubyの野良ビルドからApacheでRails動かせるまで
構築してみました。
自分なりの結論だと、はっきり言って不親切というかgemが凶悪すぎたりして
運用が現実的じゃないとまでは言わないまでも、フレームワークと名乗る以上
運用までのプロセスをもう少し簡便にする努力は必要だと思います。
851nobodyさん:2010/02/05(金) 17:52:33 ID:???
具体的に何が不満なんだよ
852nobodyさん:2010/02/05(金) 18:57:44 ID:???
>>849
え?え?
なんか前後の文がつながってないような…

railsからPHPへの移行が多いっていうならわかるけど。
853nobodyさん:2010/02/05(金) 19:08:14 ID:???
>>845

>>844 は初心者ということをお忘れなく
854nobodyさん:2010/02/05(金) 19:09:32 ID:???
>>850
楽なフレームワークが欲しくて
PHPやPerlが嫌なら
RubyじゃなくてPythonの方がお薦め
855nobodyさん:2010/02/05(金) 20:19:04 ID:???
ど・・・Djangoは日本語ドキュメントがほとんど無いので二の足
ほんとはRubyよりPythonのほうがすきなんだけど
856nobodyさん:2010/02/05(金) 20:38:33 ID:5PrgsIzR

Riding Rails: Rails 3.0: Beta release
http://weblog.rubyonrails.org/2010/2/5/rails-3-0-beta-release


Twitter / DHH: Rails 3.0 has gone beta: h ...
http://twitter.com/dhh/status/8661675174
857nobodyさん:2010/02/05(金) 20:43:39 ID:???
今度は本当だね。
858nobodyさん:2010/02/05(金) 20:51:09 ID:???
雑魚は放っておいて先へ進もう
859nobodyさん:2010/02/05(金) 21:39:50 ID:5PrgsIzR
Rails 3 Beta is Out ? A Retrospective | Engine Yard Blog
http://www.engineyard.com/blog/2010/rails-3-beta-is-out-a-retrospective/
860nobodyさん:2010/02/05(金) 21:42:03 ID:???
なんで ― が ? に化けてるんだよ。
861nobodyさん:2010/02/05(金) 21:43:56 ID:5PrgsIzR
Rails 3.0 Beta/Prerelease Available Now and How To Install It
http://www.rubyinside.com/how-to-install-rails-3-0-prerelease-beta-2955.html
862nobodyさん:2010/02/05(金) 22:47:51 ID:5PrgsIzR

The Pragmatic Bookshelf | ChangesInRails30
http://www.pragprog.com/wikis/wiki/ChangesInRails30

Manning: Rails 3 in Action 
http://www.manning.com/katz/
863nobodyさん:2010/02/05(金) 23:33:51 ID:???
このスレの人は排他的だなー

Railsを使う人が増えるのは素晴らしいことですよ
web上の情報や書籍も増えるし開発だってもっと進む
目玉の数は多ければ多いほどいいんです

底辺も含めて使う人が増えれば増えるほどその言語/FWの環境が良くなるということは
昔のPerlや今のPHP、そして海外限定でPythonが証明していませんか?
864nobodyさん:2010/02/06(土) 00:15:42 ID:sFPKz/Gl
865nobodyさん:2010/02/06(土) 02:45:14 ID:???
まあ日本はガラパコス島だしな。世界の流れに取り残されまくり。

世界ではphp5+mysqlが主流なのに、php4+postgresだったりするし。いつも周回遅れ。
866nobodyさん:2010/02/06(土) 02:53:40 ID:YL0PbaBD
質問です
最近railsの勉強を始めました。手始めに

Ruby のブログを 10 分で作成
http://netbeans.org/kb/docs/ruby/rapid-ruby-weblog_ja.html?print=yes

に挑戦しているのですが、ユニットテストでつまずいています。

rakeのdb:test:prepareを実行すると

rake aborted!
Task not supported by 'jdbcmysql'

というメッセージがでて、エラーになってしまいます。

環境はNetbean6.8 rails2.3.4 Jruby1.4 MySQL5.1.42 です
解決策をご存知の方がいらっしゃいましたら、教えてください。

もうすぐ仕事で使うので、できればTDDをやりたいのですが、困ってます。、
867nobodyさん:2010/02/06(土) 03:04:04 ID:WHjoDDD7
>個人的にそういう底辺層をRailsに取り込みたいとは全く思わない。

これは酷い
君が誰だが知らないがたとえDHHだったとしても賛同できない発言だな
そもそもRailsってwebアプリケーション・フレームワークだろ
アプリ層以外のところにエンジニアが気をとられすぎてる現状は改善されるべき
868nobodyさん:2010/02/06(土) 03:25:02 ID:sFPKz/Gl

ruby\rails\hello>rails generate controller hello
ruby/lib/ruby/gems/1.8/gems/railties-3.0.0.beta/bin/rails:2:in `exec'
: Exec format error - ruby/rails/hello/script/rails (Errno::ENOEXEC)
from ruby/lib/ruby/gems/1.8/gems/railties-3.0.0.beta/bin/rail
s:2
from ruby/bin/rails:19:in `load'
from ruby/bin/rails:19
869nobodyさん:2010/02/06(土) 03:27:48 ID:???
底辺層がRails使ってくれないとRails案件が増えないんだよなあ
増えないどころか周りに合わせてPHPなんぞやらされたら死にたくなるよ
870nobodyさん:2010/02/06(土) 05:32:26 ID:WcJ7lKTj

5行でrails3

$ rails example
$ cd example
$ ruby script/rails generate scaffold todo title:string body:text done:boolean due:datetime
$ rake db:migrate
$ ruby script/rails server

http://localhost:3000/todos/
871nobodyさん:2010/02/06(土) 06:07:43 ID:???
>>866
10分で出来なかった事実を重く受け止めろ m9
872nobodyさん:2010/02/06(土) 06:11:06 ID:???
>>855
Railsも日本語の「まともなドキュメント」は少ないぞ
873nobodyさん:2010/02/06(土) 09:26:17 ID:???
>>866
jdbcmysqlアダプターで一部の操作が未サポートだって言われてる。
rakeを-t付きで実行して、どのタスクが未サポートか確認。
874nobodyさん:2010/02/06(土) 09:42:28 ID:sFPKz/Gl
About your application’s environmentRuby version 1.8.7 (i386-mswin32)
RubyGems version 1.3.5
Rack version 1.1
Rails version 3.0.0.beta
Active Record version 3.0.0.beta
Action Pack version 3.0.0.beta
Active Resource version 3.0.0.beta
Action Mailer version 3.0.0.beta
Active Support version 3.0.0.beta
Middleware ActionDispatch::Static
Rack::Lock
Rack::Runtime
Rails::Rack::Logger
ActionDispatch::ShowExceptions
ActionDispatch::Callbacks
ActionDispatch::Cookies
ActionDispatch::Session::CookieStore
ActionDispatch::Flash
ActionDispatch::ParamsParser
Rack::MethodOverride
ActionDispatch::Head
ActiveRecord::ConnectionAdapters::ConnectionManagement
ActiveRecord::QueryCache
875nobodyさん:2010/02/06(土) 09:43:44 ID:sFPKz/Gl
About your application’s environment

Ruby version 1.8.7 (i386-mswin32)
RubyGems version 1.3.5
Rack version 1.1
Rails version 3.0.0.beta
Active Record version 3.0.0.beta
Action Pack version 3.0.0.beta
Active Resource version 3.0.0.beta
Action Mailer version 3.0.0.beta
Active Support version 3.0.0.beta
Middleware

ActionDispatch::Static
Rack::Lock
Rack::Runtime
Rails::Rack::Logger
ActionDispatch::ShowExceptions
ActionDispatch::Callbacks
ActionDispatch::Cookies
ActionDispatch::Session::CookieStore
ActionDispatch::Flash
ActionDispatch::ParamsParser
Rack::MethodOverride
ActionDispatch::Head
ActiveRecord::ConnectionAdapters::ConnectionManagement
ActiveRecord::QueryCache
876nobodyさん:2010/02/06(土) 13:34:13 ID:???
gem bundler でgemの管理は楽になるのかなー。
今はcomfig.gemで管理してもgemがうまく動かなかったりして
結局pluginにして入れる事も多いので。
877nobodyさん:2010/02/06(土) 15:03:10 ID:???
Zed Shawって最近何やってんの?
878nobodyさん:2010/02/06(土) 15:30:41 ID:???
>>876
今はgem bundleというgemのサブコマンドではなく、独立したbundleという
コマンドになってる。
0.9以降でそれまでとだいぶ変わったな。
879866:2010/02/06(土) 15:39:36 ID:YL0PbaBD
>>871
10分どころか10日も厳しい
>>873
まだコマンドプロンプトからの実行ができていないのですが
rakeのタスク一覧にはdb:test:prepareがあります。

いろいろ調べても、db:test:prepareはさらっと流されてるので
できないほうが珍しいのかな。

最初のソースはグダグダになるのが目に見えているので
テスト駆動にしといて後で直したいんですけどねぇ
880nobodyさん:2010/02/06(土) 17:07:11 ID:???
jrubyをやめるのが一番簡単なんじゃないかねえ。
881nobodyさん:2010/02/06(土) 17:13:43 ID:???
とりあえず、

1. config/database.yml に設定を書く。
2. mysqlでアクセスするユーザーを作っておく。(grant)
3. 開発用DBを作る。rake db:create
4. テスト用DBを作る。 rake db:create RAILS_ENV=test

db:test:prepareはそのあと。

mysql の前に sqlite3 でやったほうが楽だと思うけど、jrubyだとドライバないのかね。
882nobodyさん:2010/02/06(土) 17:16:34 ID:???
netbeansの公式ドキュメントなのか、それ。
ちゃんと動作確認しながら書かれたものなんだろうか。
883nobodyさん:2010/02/06(土) 18:20:25 ID:???
jrubyとか敷居高すぎだろ常考
884866:2010/02/06(土) 18:50:43 ID:O1uZpKfZ
>>880-883
レスありがとうございます

実は
rake db:create
rake db:create RAILS_ENV=test

も上手く言ってないです。エラーは出ないけどもDBも作成されて無いです。
ただ、Rubyのブログを10分で〜のページに、そういう場合は

「サービス」ウィンドウで、MySQL サーバーのノードを右クリックし、「データベースを作成」

と記述してあったので 手動で作成しています。

jruby、mysqlはnetbeansのデフォルトなので、そのあたりは触らないほうが
余計なリスクを背負い込まなくてすむと思ったんですけどね

とりあえず mysql⇒sqllite3 jruby⇒ruby でそれぞれ実験して
問題の切り分けをしてみたいと思います。
885nobodyさん:2010/02/06(土) 19:28:29 ID:???
jruby やるならgrailsやったほうがいいんじゃない?
886nobodyさん:2010/02/06(土) 20:13:44 ID:???
生rubyが好き。生がいい
887nobodyさん:2010/02/06(土) 20:41:12 ID:???
>>884
最近JRubyで動作試したことあるけど、jdbcmysqlだとrake db:createとかが上手く動かない
必要ない限りJRubyは選ばない方が無難
888nobodyさん:2010/02/06(土) 20:44:13 ID:???
db:create は初登場時から、全アダプタで対応しているわけではないって主張してたしなー。
889nobodyさん:2010/02/07(日) 03:39:00 ID:lH6tE8FW

Looking for a few beta users of our Ruby 1.8.7 & Ruby 1.9 (& Rails 3) stack. Drop [email protected] an email. Feedback required.
http://twitter.com/heroku/status/8649329782

890nobodyさん:2010/02/07(日) 04:07:15 ID:lH6tE8FW

Rails 3.0 Beta の Release Notesを読んでみる
http://blog.livedoor.jp/maru_tak/archives/50808747.html
Rails3 リリースノート全文和訳 (ただし適当)
http://d.hatena.ne.jp/gom68/20100206/1265469879
Rails 3.0 リリースノート和訳 - 前編
http://d.hatena.ne.jp/willnet/20100206/1265467594
891nobodyさん:2010/02/07(日) 08:42:26 ID:???
Rails3のメリットは何?って聞かれたらなんて答えますか。
多分これから各所で聞かれるだろうから想定回答を用意しておきたい
892nobodyさん:2010/02/07(日) 08:55:11 ID:???
>>843-845
確かに鯖管理が面倒というのはあるね。

フレームワークとは違うけどwordpressとかphpbbの作者はスクリプトの普及のため
その辺はものすごく意識しているみたい。
要するにレン鯖で動くようにすることに執念を燃やしている。

WordPressに見るオープンソースWebアプリに向いた設計とは - p0t
http://docs.komagata.org/2815


phpはmod_php動作はともかく、一旦普及してデフォで採用されているのがデカイんだろうなー
mod_php相当のpassengerはいいんだけど、いまいち普及してないよね・・・。
海外だとDreamhostあたりは入ってたと記憶

>>846のherokuみたいにデプロイ簡単で、managedなサーバーはよいね。もう少し安ければいいけどw


ただ、無粋なので言うのやめようかとおもったけど、
動かそうと思えば、xreaとかcoreserverでCGI駆動でも動かせるよ?
どうせサービス作っても流行るかどうかはわからんのだから、人少ないうちはCGI駆動でも問題ないよ!
893nobodyさん:2010/02/07(日) 10:05:09 ID:lH6tE8FW
894nobodyさん:2010/02/07(日) 15:47:44 ID:???
cgiとかみんな重くて不幸に成るから辞めてくれw
さくらのphpみたいにrubyも上位サービス契約しないと使えない様にされるだけだ。


まともに出来ないレベルで仕事に仕様というのは無茶だな。
そんなレベルで金受け取って仕事される客も困るだろうw
895866:2010/02/07(日) 20:54:16 ID:AwzzZZa9
jrubyをrubyに変えたら上手くいきました。

ただ、MySQL5.1も問題ありみたいですね。とりあえず
ここを参考にして、エラーは回避しました。
http://d.hatena.ne.jp/kusakari/20091202/1259683140

SUNでまとめときゃ大丈夫と思ったのが甘かったみたいです。
それともwindowsが合わないのかな。

レスくれた方々には感謝してます。
896nobodyさん:2010/02/07(日) 21:34:57 ID:???
あんま変わったことしない方がいいよ。悪く言えば寄せ集めなんだから
Google App Engine とかもあったけど、「○○で動いた」みたいな報告は、
ごく一部の機能を動かしただけで、実際の開発には耐えられないんじゃないだろうか。
897nobodyさん:2010/02/08(月) 13:58:49 ID:UWYpis5j

http://www.flickr.com/photos/46457493@N00/sets/72157623251011769/show/

How to use both Rails and Sinatra in the same application: http://bit.ly/9nGcR2 -- love how easy this is!
http://twitter.com/dhh/status/8771056696


898nobodyさん:2010/02/08(月) 14:51:50 ID:???
jrubyとrorはサン純正でもないと思うが。
サン純正でまとめるならちゃんとjavaで組んだほうがいい。
時代はoracle enterprise linux + oracle weblogic application server + oracle databaseかもしれないが。
899nobodyさん:2010/02/08(月) 19:43:14 ID:???
rails3って2系とあんま変わらないらしいね。
一部の機能がモジュール化されて取替え可能になるだけか
900nobodyさん:2010/02/08(月) 20:05:25 ID:???
GWT
901nobodyさん:2010/02/08(月) 22:59:49 ID:???
jpmobileはRails3に対応してくれるんだろうか
902nobodyさん:2010/02/08(月) 23:23:01 ID:???
先月に続き、今月またjpmobile会議があるっぽいから請うご期待。
903nobodyさん:2010/02/10(水) 06:22:01 ID:F6Q2dOp+

Ruby on Rails によるシステム開発事例集 - 株式会社オイアクス
ttp://www.oiax.co.jp/cases
904nobodyさん:2010/02/10(水) 13:09:43 ID:L494lCPs

Twilog - Twitterのつぶやきをブログ形式で保存
http://twilog.org/

ひとりで作るネットサービス:
ただしイケメンに限……らない! ネットならフリーターでも生活できる――ロプロスさん
http://bizmakoto.jp/bizid/articles/1002/10/news032_2.html
「今振り返ると勉強してよかったです。これから作るWebサービスもRubyで作ります。
やっぱり純粋なオブジェクト指向がすばらしいというか、
PHPで数行かかるところも1行で書けてしまったり、かゆいところに手が届く言語ですね」。
「よく言われることですが」と前置きしつつ
「やっぱりRubyは書いていて楽しい」という。



905nobodyさん:2010/02/11(木) 08:39:51 ID:???
Rails事例ではないかもしれんが、参考になるな。
しかし、開発環境がRDEの男の人って・・・
906nobodyさん:2010/02/11(木) 11:54:04 ID:???
sakuraで15000pv/日のサイト動いてるよん
907nobodyさん:2010/02/11(木) 12:56:06 ID:d9Kyh7+c
自社サイトのPVを計算してみたら、119,932pv/日だった(1月分)。
Webサーバ1台、DBサーバ1台。
それぞれ専用サーバで、メモリは4GB。CPUはCore2DuoT8100。サーバ1台あたり月額14,700円
Apache + mongrel + PostgreSQL8.3。
Rubyのバージョンは1.8.7。
稼動年数は4年くらい。
908nobodyさん:2010/02/11(木) 14:17:14 ID:???
10万pv/月ベースは個人で作っても結構簡単に達成できるなぁ。
日ベース常時1万に乗っけるのが難しい。
自分のサイトはなぜか休日にアクセス数激減してしまう
パフォーマンス意識しなきゃいけないほどのマンモスサイトを早く作りたい
909907:2010/02/11(木) 15:10:07 ID:???
>>908
上のサイトはPCサイトのみのアクセス数なんだけど、やっぱり土日や祝日はアクセスが減るね。
休日も見てもらえるようなコンテンツを用意しないといけないんだろうけど、今はアイデアがない。
ちなみに、1日で約11万pvだから、月だと11*31=341万pv。
当初は、月10万まで行くのも苦労したんだけど、簡単にいけるもんなのか・・・
910nobodyさん:2010/02/11(木) 16:48:41 ID:???
スレ違い
911nobodyさん:2010/02/11(木) 16:56:25 ID:XTMQuQu/

ミニブログの Twitterのstats(統計)データ。
http://kaworu.jpn.org/kaworu/2008-01-16-2.php
- 350,000を超えるユーザ。
- 秒間600リクエスト
- 平均毎秒200-300コネクション。最大時は秒間800コネクション
- MySQLは秒間2,400リクエストを処理する
- 180のRailsインスタンスがある。MongrelのWebサーバを使っている。
- 1つのMySQLサーバ(1つの大きな 8コアのサーバ)と1つのスレーブ。スレーブは、統計とレポートのための読み込み専用(リードオンリー)。
- 雑用処理をするための30+のプロセス
- 8台のSun X4100s
- Railsでのリクエストの処理時間は200 msec
- データベースにかかる時間の平均は、50-100 msec
- 16GBの memcached
912nobodyさん:2010/02/11(木) 17:09:17 ID:XTMQuQu/

RORのままアーキテクチャの変更で10000%高速化したとな。
ttp://b.hatena.ne.jp/entry/highscalability.com/scaling-twitter-making-twitter-10000-percent-faster
913nobodyさん:2010/02/11(木) 18:00:46 ID:???
DBを中心としたデータアクセス周りは手を抜いて作るとバカみたいに遅くなるからな
ツイッターのエンジニアもそのあたりの失敗を認めてたような
ここまで使われると思ってなかったんだろうけど
914nobodyさん:2010/02/11(木) 19:27:35 ID:???
>>904 の主は2chねらっぽい
K氏と一緒に稼ぐチンパン団 入団20日目
http://pc12.2ch.net/test/read.cgi/affiliate/1262801285/

スレタイトルのチンパン団はインタビューで小一時間説明したのに華麗にスルーされたとかw
915nobodyさん:2010/02/12(金) 00:23:36 ID:???
railsでkeyvalue型のDBって使えないの?
916nobodyさん:2010/02/12(金) 06:49:51 ID:GlKVK1JQ
単にActiveRecord使わなければいいだけ
というか今もmemcachedとか普通に使われてないか?
917nobodyさん:2010/02/12(金) 08:49:26 ID:???
TokyoTyrant、Roma、Kumofsなどなど好きなの使えばという感じだが。
918nobodyさん:2010/02/12(金) 09:32:46 ID:???
URL helper関数をRails Consoleから確認することはできますか?
StoryモデルとStoriesコントロールがあったとして、

>stories_path
(/stories を期待している)

としても、そんなメソッドはないと言われてしまいます。
919nobodyさん:2010/02/12(金) 10:47:03 ID:???
UrlHelperというのは別途存在するので確認だけど、
map.resourcesで作られるURLを表すメソッドだよね?

ActionController::Routing::Routes.install_helpers して helper.stories_path かなー
と思ったんだけど、違った。

認識されるURLパターンを見るだけなら rake routes でいいんだけど。
920nobodyさん:2010/02/12(金) 12:44:06 ID:???
>>919
レスありがとうございます。
はい、map.resourcesで作られる4つの関数です。
結局、protectedメソッドらしく確認できないっぽいです。
921nobodyさん:2010/02/13(土) 00:53:22 ID:???
paperclipで画像登録する時、ファイル単位じゃなくてフォルダ選択して中身を一括登録ってできる?
922nobodyさん:2010/02/13(土) 01:02:56 ID:???
ブラウザの<input type="file">に、ディレクトリを指定すると
その中身をごっそり送るような仕組みが出来ない限り無理じゃないか?

923921:2010/02/13(土) 01:09:26 ID:???
>>922

昔作ったやつでフォルダ一括って出来たんだけど、
確かDBにバイナリで格納してたから重かった気がした。
最近paperclipって知ったからコレは!って思ったんだが…

会社行ったら前どうやって作ったのか確認してみます。
924nobodyさん:2010/02/13(土) 01:39:55 ID:???
フォルダ一括ってブラウザにそんな機能あったんかw
925nobodyさん:2010/02/13(土) 11:03:58 ID:???
「一括アップロード jquery」とか「一括アップロード JavaScript」とかぐぐればいろいろ出てくるけど、
フォルダ一括はそもそもブラウザに機能ないから、何か工夫しないといけないはず。

↓フォルダは無理だが複数一括ならこんなのとか
MOONGIFT: ≫ 華麗にアップロード「SWFUpload」:オープンソースを毎日紹介
http://www.moongift.jp/2007/07/swfupload/
って公式サイト死んでるがな・・・

あとはzipで圧縮したのをアップロードして、サーバー側で展開とか。一手間増えるが
926nobodyさん:2010/02/14(日) 00:55:54 ID:???
なるほど、JavaScriptだと、1個ずつ選択してストックしておくしかないけど、
Flash(ActionScript)を使えば一度に複数選択できるのか。
927nobodyさん:2010/02/14(日) 13:54:20 ID:6lVOAOxG
どなたか教えてください。

link_to_remoteを使って「ほげ」をクリックすることで"hoge"の内容が
書き変わるようにしています。

<%= link_to_remote 'ほげ',
:update => "hoge",
:url => {:controller => 'foo', :action => 'index'} %>
<div id="hoge"></div>

これをクリックとかの能動的な操作を必要とせずに、画面の初期表示段階で
{:controller => 'foo', :action => 'index'}を実行させるようにしたいです。

何か良い方法はありませんか?

よろしくお願い致します。





928nobodyさん:2010/02/14(日) 16:10:17 ID:???
>>918
include ActionController::UrlWriter
929nobodyさん:2010/02/14(日) 16:24:39 ID:???
>>927
function foo() {
<%= remote_function(オプション) %>
}
document.observe('dom:loaded', foo)
かな
930nobodyさん:2010/02/14(日) 17:21:58 ID:6lVOAOxG
>>929
ありがとうございます。
おかげさまで、うまく実装できました。

当方、jQueryを使っておりますので以下のようになりました。
jQueryでdocument.observe('dom:loaded', foo)に相当するものを探すのに
時間が掛かってしまいました。

<%= link_to_remote 'ほげ',
:update => "hoge",
:url => {:controller => 'foo', :action => 'index'} %>
<div id="hoge">
<script type="text/javascript">
function foo() {
<%= remote_function(:update => "user_week_block",
:url => {:controller => 'user_week', :action => 'index'}) %>
}
$(document).ready(foo)
</script>
</div>
931nobodyさん:2010/02/14(日) 19:00:42 ID:???
いやprototype.js使えよrailsなんだから…
932nobodyさん:2010/02/14(日) 19:12:56 ID:???
>>931
まあ、ありでしょ。jQueryもメリットある。
remote_function 使うんだからPrototypeもロードしてるはずだけど。
933nobodyさん:2010/02/14(日) 19:13:48 ID:???
jRailsつかえばいいのでは
934nobodyさん:2010/02/14(日) 19:17:34 ID:???
>>930
なんかコントローラ名とか漏れてるぞw
week blockって
935nobodyさん:2010/02/14(日) 19:17:56 ID:???
よほどUIに凝ってるサイトでもなければjquery使うメリットなんて無いと思うぞ
936nobodyさん:2010/02/14(日) 20:31:43 ID:???
web-app-themeをうまいこと使う方法ありませんか?

タグにいちいち :class => "label" ってやるのは DRY じゃないと思い
alias_method_chain で FormHelper のメソッドをオーバーライドしようと
label メソッドだけは上書きしてみたんですが

これを、text_field やら form_for やら同じようにやってくのは
これまたDRYじゃないと思い、そこでいきづまりました

:class が nil ならタグ名をクラスとする、スマートな方法があったら教えて下さい
937936:2010/02/14(日) 21:36:39 ID:???
自己レス
groundworkなるプロジェクトテンプレートが参考になりそうですね
Windows環境だと使えなさそうなので、Linux環境構築中…
938nobodyさん:2010/02/14(日) 22:56:50 ID:???
>>935
状況と好みによって選択だな。

jQuery は動的に DOM をバシバシいじるのは確かに楽だ。
配列や文字列なんかのユーティリティ系は Prototype のが素直に書けるよね。
939nobodyさん:2010/02/14(日) 23:01:35 ID:???
JS名前空間汚したくない人はjQuery好き
940nobodyさん:2010/02/14(日) 23:28:02 ID:???
俺レベルになると生でjavascript書く方が楽だ
941nobodyさん:2010/02/14(日) 23:47:56 ID:???
おれもヘルパー使う気にならん
結局生で書くことになったりするから、混在させるのが嫌だなあ
942nobodyさん:2010/02/15(月) 07:55:38 ID:???
このスレ的にRails3のunobstrusive javascriptはよいもの?
943nobodyさん:2010/02/15(月) 07:58:05 ID:???
unobtrusive ですた…


他のフレームワークで結構採用されてんのね。
944nobodyさん:2010/02/15(月) 15:02:24 ID:???
railsって自動で負荷分散もしてくれるの?
もしできるなら勉強してみるかな
945nobodyさん:2010/02/15(月) 15:31:18 ID:???
>>944
それは無理
946921:2010/02/15(月) 16:20:19 ID:???
前作ったの見てみたら、あらかじめ設定したフォルダに
入ってる複数の画像ファイルをjavascriptで持ってきてた。

1年以上前に書いたモノだから今見ると欠片もワカラン。
paperclip使って1ファイルづつ登録するしかないかな…

3000ファイルくらいあるけど
947nobodyさん:2010/02/15(月) 18:42:58 ID:9Iqj2ojJ

Rails基礎文法最速マスター - cod.note
http://d.hatena.ne.jp/codnote/20100214/1266132768
948nobodyさん:2010/02/15(月) 19:34:53 ID:???
>>947
なんという薄っぺらい内容・・・

「続きは本で!」メソッドだな。
949nobodyさん:2010/02/15(月) 19:54:14 ID:???
薄っぺらいっつーかどこかのヘルプを丸写ししただけじゃね
何で☆付いてんだろw
950nobodyさん:2010/02/15(月) 20:01:34 ID:???
Rails3っていつリリースされるんですか?
951nobodyさん:2010/02/15(月) 20:12:33 ID:???
>>950
βなら出てる。
952nobodyさん:2010/02/15(月) 20:15:15 ID:???
ソラ少年はべつにHead First Javaの翻訳者でも何でもないんだから
別にメソッドと呼ぶほどのものではなかろう。
あ、でもアフィは入ってくるのか。

953nobodyさん:2010/02/15(月) 20:16:06 ID:???
自演キモ過ぎ
954nobodyさん:2010/02/15(月) 20:43:43 ID:???
>>951
ありがとうございます。まだβでしたか。
新サービスをRailsで作りたいのに3を待つか2で行っちゃうかでウズウズ…
955nobodyさん:2010/02/15(月) 20:50:13 ID:???
βはちょっと見ただけだが、
* モンキーパッチするなど、実装の深いところを触るのは避ける
* プラグインは全滅するので使わない
というレベルでとりあえず2.3.5で作りはじめておくくらいなら、大丈夫かも。
956nobodyさん:2010/02/15(月) 21:03:13 ID:???
実運用するなら2.3.xがいいんじゃないだろうか
たぶんそれなりに開発できるようになるには半年くらいかかるように思う
リリースが大幅に遅れたプロジェクトは要注意。勉強なら平行してやればいいし
957nobodyさん:2010/02/16(火) 00:18:29 ID:???
Windows上でRuby1.9とした場合
サーバーはどれがいい(動く)の?

Mongrel? LightTPD? thin?
958954:2010/02/16(火) 00:47:56 ID:???
>>955
>>956
ありがとうございます。参考になりました。
とりあえず2.3.5で行くことにします。
959nobodyさん:2010/02/16(火) 04:43:08 ID:???
なんとかpid
ってファイルを手動で消さないと起動しないことあるんだけど
installの仕方間違えたのかな
960nobodyさん:2010/02/16(火) 14:33:15 ID:???
検索、一覧っていう
簡単な流れの画面作ってんだけど
検索画面の入力チェックってcontrollerにもりもり書いていいの?
961nobodyさん:2010/02/16(火) 15:12:55 ID:vr/Y6Irj
modelへ
962nobodyさん:2010/02/16(火) 19:26:00 ID:???
>>960
検索ワードのことなら、俺ならコントローラに書く。
検索ワードの入力チェック的なこと、そんなにいらなさそう。
検索式の中に入れるならエスケープは必要だけど。
963nobodyさん:2010/02/16(火) 19:39:38 ID:???
エスケープはモデルでやるべきだろ
964960:2010/02/16(火) 20:02:05 ID:???
>>962
検索ワードです。

>>963
プレースホルダ使ってるのでSQLInjectionなら大丈夫です。

ttp://gendosu.ddo.jp/redmine/projects/rails/wiki/モデルとは関係ない検索条件などのパラメータをviewとcontrollerでやりとりする
とりあえずここみながらmodelに書いてみた。

controllerの方がもりもりいけるけど、汚い。
modelだと専用class用意すんのがちょっと面倒。

大抵の人はcontrollerなのかな。
965nobodyさん:2010/02/16(火) 20:40:30 ID:???
コントローラはあくまでオマケで、 script/console でモデルだけ操作して
アプリすべての処理が簡単に行えるのが理想だと思ってる
966nobodyさん:2010/02/16(火) 21:17:26 ID:???
四階層モデルですねわかります
967nobodyさん:2010/02/16(火) 23:27:40 ID:???
(´・ω・`)
968nobodyさん:2010/02/16(火) 23:33:25 ID:???
controllerとmodelの間にサービス層が欲しい。
ある程度以上の規模になったら絶対必要だと思うんだけど皆はどうしてるんだろう。
独自に層を挟むのはアリなのかな?
969nobodyさん:2010/02/17(水) 00:16:32 ID:???
presenter層について紹介。
http://kpumuk.info/ruby-on-rails/simplifying-your-ruby-on-rails-code/

これはrailsのブログでも紹介されていたよ。
http://weblog.rubyonrails.org/2009/10/22/community-highlights
970nobodyさん:2010/02/17(水) 00:17:30 ID:???
アリでしょ。
app/modelsの中に勝手にクラス作ればOK
971nobodyさん:2010/02/17(水) 00:31:26 ID:???
>>970
sample codeがみたい
972968:2010/02/17(水) 00:36:13 ID:???
>>969
>>970
ありがとうございます。

>>969
こんなプラグインがあるんですね。参考になりました。
ただapp直下に新しいディレクトリ作るのは少し抵抗あります。。

>>970
独自に作る場合はmodels以下に作るべきでしょうか?
個人的には、サービス層はコントローラクラスに依存するからcontrollers以下に作った方がすっきりしそう。
例えばloginコントローラ内でabcモデルとxyzモデルを利用する処理がある場合、サービスクラスを保持するファイル名はlogin_serviseのようにコントローラ名に依存すると思います。
なのでcontrollers以下に入れた方が綺麗かなぁと。ほとんど好き嫌いの問題だけど。
973nobodyさん:2010/02/17(水) 01:07:35 ID:???
サービス層はコントローラじゃないんだからcontrollers以下に作るのはおかしいと思うけどね。
サービス層はサービス層用にディレクトリ作って、まとめたらいいんじゃないかな
974nobodyさん:2010/02/17(水) 12:50:45 ID:???
ごめん、ちょっとわかんなくなってきた。
Service / Model / Controller の役割を誰か例付きで解説して。
975nobodyさん:2010/02/18(木) 16:38:59 ID:I3xk6O8m

Wikipediaのダウンロードできるデータファイル一覧
http://www.mwsoft.jp/programming/munou/wikipedia_data_list.html
976nobodyさん:2010/02/18(木) 18:26:01 ID:???
>>969
これは、「層」というか、ControllerとViewに介在してシンプルにするパターン(って書いてあるけど)かなあ。

>>968,973,974
質問にもなるけどサービス層として切り出したいものって、
いわゆる「ビジネスロジック」ってやつかな、と思ってるんだけど合ってる?

データに属していない処理(複数のモデルが関わっていて、どのモデルにも置きにくい)で、
Webにも依存しないので単独でも起動できるようなものを、
「サービス」としてまとめたいのかなと思った。

(Railsの)ControllerはWeb依存なのでView間の遷移とかデータをViewにパスするとかを専門でやる。

俺のイメージはこんなん。
977973:2010/02/18(木) 23:36:13 ID:???
>>976
自分の言っているサービス層は、そういう意味だと思う。
モデルまたはサービス層はWebに依存しないようにして
runnerやconsoleで動作確認しやすいように作ってる。

とりあえず、今はlib/services以下にサービス層を作って置いてる
lib/services/sample_service.rbという感じ。
Services::SampleServiceという感じで名前が長くなるのがちょっと面倒だけど。
サービスを作る時の基準ってみんなどうしてるのかな。
自分は複数のモデルが絡むトランザクション処理とかだけサービスにまとめて、
単一のモデルで簡潔する処理は、そのモデル内に書いてる。
978nobodyさん:2010/02/19(金) 02:41:48 ID:???
libに置くのは最悪だろ
アプリケーションから取り外して再利用できるコードを置く場所
979977:2010/02/19(金) 02:48:31 ID:???
>>978
自動で読み込まれるところに置きたい
モデルとは区別したいので、app/models以外に置きたい
この2点で考えると、lib/serviceというディレクトリに置くのが手っ取り早いってだけで
今はそうしてる。

他にいい場所あったら教えて欲しい。
app/services以下に置く事にして、
environment.rbあたりにapp/services/*.rbをrequireする処理を書けばいいかな。
980nobodyさん:2010/02/19(金) 08:35:28 ID:???
そのへんのためかどうか知らないけど、Rails3ではRails.root/app/ の下の
ディレクトリが全部load pathに含まれるようになる。
981nobodyさん:2010/02/19(金) 09:10:06 ID:???
そういうのはrorは弱いしな。

梅。
982nobodyさん:2010/02/19(金) 11:40:07 ID:???
>>979
environment.rb に

# Add additional load paths for your own custom dirs
# config.load_paths += %W( #{RAILS_ROOT}/extras )

っていう箇所があるからそうすればいいのでは。
config.load_paths += %W( #{RAILS_ROOT}/app/services )
983nobodyさん:2010/02/19(金) 12:05:30 ID:???
埋める前にそろそろ次スレ他てようぜ
984nobodyさん:2010/02/19(金) 16:13:46 ID:WbFNhWFy
985nobodyさん:2010/02/19(金) 23:08:27 ID:???
それじゃ埋め。
986nobodyさん
埋められまsrん。