【Agile】Ruby on rails相談所 part2【DRY】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/06/26(月) 01:52:58ID:???<英語>
本家: http://www.rubyonrails.org
API: http://api.rubyonrails.com/
Documents&Tutorials: http://documentation.rubyonrails.com/
<日本語>
Rails' wiki: http://wiki.fdiary.net/rails/
ActiveRecordの記事(データベースの操作):
http://jp.rubyist.net/magazine/?0004-RLR
http://jp.rubyist.net/magazine/?0006-RubyOnRails
0609nobodyさん
2006/10/16(月) 11:17:22ID:???「イッペンイッテミル?」って
耳元でささやかれたい
0610nobodyさん
2006/10/16(月) 12:31:30ID:???0611nobodyさん
2006/10/16(月) 13:48:31ID:???人気声優の一人
0612nobodyさん
2006/10/16(月) 14:18:25ID:???最初からRORさわっても大丈夫ですか?
Rubyは後からおぼえてもいいのでしょうか?
RORを触る上での前提知識を知りたいです。
0613nobodyさん
2006/10/16(月) 15:42:00ID:???必要なのはWebアプリ全般の知識だな。
HTTPのリクエストだとか、ステートレスでどうやってセッションを維持
してるのかとか、フォームからのデータ受け渡し、HTMLのごく基本的な知識・・・
あとSQLね。RoRはSQL避けて通れないから。
RoRは簡単簡単と言われるが、裏でどんな仕事をしているかを知らなきゃ
「なにがどう簡単なのか」が判断できないと思うし、何よりドキュメントに無い
思わぬところで躓いてしまった時になにがどう悪いのか解らないからデバッグ
出来ない。(これはRoRに限らずフレームワーク全般にいえるんだけどね)
404が出てまったら?500ならまず何を疑うの?スタックトレースに出て来る
生SQLは読める?デバッグコード仕掛ける位置や仕掛けかたは知ってる?
ハマったときドキュメントはどんなキーワードで引けばいい?
そういう本当に基本的なところだね。
DB連携のCGIを数本(コピペや改造じゃなく)「作った」経験があれば大丈夫
だと思うよ。
0614nobodyさん
2006/10/16(月) 16:03:16ID:???0617nobodyさん
2006/10/17(火) 00:14:37ID:???このチュートリアルのDestroyメソッドなんですが、
destroyという名前にすると削除されないんですがこれは間違っていると言うことでいいでしょうか?
0618nobodyさん
2006/10/17(火) 01:06:18ID:AypBDR12http://d.hatena.ne.jp/sumii/20060928/1159394568
http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/sumii/20060928/1159394568
0620nobodyさん
2006/10/18(水) 03:56:40ID:???インスコしようと思ったらCDを要求されたので、中止してしまった。
もうウィンドウズでもインスコしようと思う。
0622nobodyさん
2006/10/19(木) 00:39:10ID:???コントローラ側でどう処理したらいいのかよくわかりません。
具体的には受注データ入力画面なんですけど、ひとつの画面で
受注ヘッダと受注明細を入力できるようにしたいのですが、
コントローラ側でのエラー処理とかどうしたらいいのでしょうか。
def create
@header = Header.new(params[:header])
@line = Line.new(params[:line])
@header.save
@line.header_id = @header.id
@line.save
flash[:notice] = 'Order created.'
render :action=>list
end
初歩的な質問で申し訳ありませんが、なにか参考になるページとかあれば
教えてください。
0623名無し募集中。。。
2006/10/19(木) 01:25:58ID:???殆どそれでいいと思う。
* トランザクション処理にした方がいい
* save!, create! で例外が発生する
あたりを加味して、エラー時処理はこんな感じでどうぞ。
def create
@header = Header.new(params[:header])
@line = Line.new(params[:line])
Header.transaction do
@header.save!
@line.header = @header
@line.save!
end
flash[:notice] = 'Order created.'
render :action=>"list"
rescue
render :action=>"new"
end
あと、":action=>list" になってるけど、タイポでなければ注意ね。
(list のメソッド呼び出しになってる)
0624nobodyさん
2006/10/19(木) 09:59:02ID:???今は
validates_format_of :phone, :with=>/^¥d+-¥d+-¥d¥d¥d¥d$/
としているのですが、値が入力されていないときでもvalidationがかかるらしく、
それでエラーとなってしまいます。
validates_format_of :phone, :with=>/^(¥d+-¥d+-¥d¥d¥d¥d)?$/
とすれば回避できるのですが美しくないし、それにvalidates_inclusion_ofなど
他のvalidationメソッドでは使えない技だし。
ソース読む限りは
validates_each(attr_names, configuration) do |record, attr_name, value|
record.errors.add(attr_name, configuration[:message]) unless value.to_s =~ configuration[:with]
end
となっているところを
validates_each(attr_names, configuration) do |record, attr_name, value|
record.errors.add(attr_name, configuration[:message]) unless value.blank? || value.to_s =~ configuration[:with]
end
とするしかなさそうなんですけど、こんな方法しか用意されていないはずはないと思うので、
だれか助けて。
0625nobodyさん
2006/10/19(木) 12:12:25ID:???0626nobodyさん
2006/10/19(木) 12:53:04ID:???Action〜 か Active〜 かどっちか思い出せないことがよくあるんだけど、
どういう使い分けで命名してるんだろ?
0627nobodyさん
2006/10/19(木) 20:48:21ID:???rake migrate
とやると
Shared object "libsqlite3.so" not found
とエラーがでます。パスが通ってないみたいなので、
rake migrate --libdir=/home/HOME/lib/
とやったのですがうまくいきません。そうすればよいでしょうか?
0628622
2006/10/19(木) 21:26:30ID:???ありがとうございます。頂いたアドバイスをもとに、最終的に次のようなコードにしました。
def create
@header = Header.new(params[:header])
@line = Line.new(params[:line])
# データを検証
is_valid = true
is_valid = false unless @header.valid?
is_valid = false unless @line.valid?
unless is_valid
render :action=>'new'
return
end
# データを保存
Header.transaction do
@header.save!
@line.header = @header
@line.save!
end
flash[:notice] = 'Order created.'
render :action=>"list"
rescue ActionRecord::RecordNotSaved => ex
render :action=>"new"
end
データを保存するまえに検証しておかないと、例えばヘッダーに間違いがあった場合、
明細のほうが検証されないので、ヘッダーのエラーメッセージしか表示されませんでした。
0629622
2006/10/19(木) 21:28:51ID:???このなかでヘッダーだけでなく明細も保存していいんですよね。
トランザクション実行の仕組みがよくわかってないんですけど、DBへのコネクションは
ActiveRecord::Baseクラスオブジェクトが管理していて、Header.transactionでも
Line.transactionでも同じという理解でいいでしょうか。
0630名無し募集中。。。
2006/10/20(金) 05:09:33ID:???> validates_format_of :phone, :with=>/^(\d+-\d+-\d\d\d\d)?$/
これでいい。
あるいは、:if=>proc{|record| not record.phone.blank?} を追加汁。
どっちが美しいと思うかは知らない。
> とすれば回避できるのですが美しくないし、それにvalidates_inclusion_ofなど
> 他のvalidationメソッドでは使えない技だし。
他のメソッドでは、大体 :allow_nil=>true が使える。
0631名無し募集中。。。
2006/10/20(金) 05:15:54ID:???コントローラとビューはCGIアクションに関係するのでAction
WebサービスもCGIアクションの一種だと捉えることができるのでAction
モデルはActiverecordパターンを利用してるのでActive
ActiveSupportはActiveRecordを補助するために作られたのでそのままActive
ActionMailerはCGIとは関係ないけどまぁアクション内から呼び出すことが多いのでAction
と無理矢理覚えてきたけどそろそろ疲れた。
0632名無し募集中。。。
2006/10/20(金) 05:24:50ID:???> Line.transactionでも同じという理解でいいでしょうか。
正解!
コネクションが同じモデルであれば(普通は全部そうなる)
どれでもいいので、全く関係ないモデルを記述しても動く。
気持ち悪いなら "transaction" メソッドを用意するとか。
class ApplicationController < ActionController::Base
delegate :transaction, :to=>"ActiveRecord::Base"
end
def create
transaction do
...
0633nobodyさん
2006/10/20(金) 07:20:10ID:???mod_rubyのコンパイルに成功しませんでした
mongrelを使ってみました
mongrel_rails mongrel_rails cluster::configure -e production -p 4000 -N 3
mongrel_rails mongrel_rails cluster::start(←うまくいったら起動シェル書く予定)
/etc/httpd/conf/httpd.confに以下を追加して/etc/init.d/httpd reload
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /omeko balancer://myomeko
ProxyPassReverse /omeko balancer://myomeko
<Proxy balancer://myomeko>
BalancerMember http://127.0.0.1:4000/omeko
BalancerMember http://127.0.0.1:4001/omeko
BalancerMember http://127.0.0.1:4002/omeko
</Proxy>
0634nobodyさん
2006/10/20(金) 07:27:33ID:???あ、間違えた
mongrel_railsのとこは
mongrel_rails cluster::configure -e production -p 4000 -N 3
mongrel_rails cluster::start
です
ごめんなさい
0637nobodyさん
2006/10/21(土) 10:08:19ID:???0638nobodyさん
2006/10/21(土) 13:26:59ID:DYWjuQWPよくわからんが、sqlite3を使う設定になってるみたいだけど、それでいいの?
MySQLじゃないの?
0639627
2006/10/21(土) 13:53:57ID:???すいません説明が足りませんでした
sqlite3を自分で入れました
/home/HOME/lib/libsqlite3.so
/home/HOME/bin/sqlite3
0640nobodyさん
2006/10/21(土) 14:42:29ID:DYWjuQWPrakeのマニュアル見たら、--libdirでいいようなことが書いてあるが・・・
なんでだろ?
0641nobodyさん
2006/10/21(土) 16:10:30ID:???WinXP + Apache2 + FastCGI + Ruby[mswin版] + MySQLでRails動かしてたんですが、
どうもtestがうまく動きません。(他のはちゃんと動く。)
具体的には、rake test:unitsとかをやると、
./test/unit/../test_helper.rb:18: undefined method `use_transactional_fixtures=' for Test::Unit::TestCase:Class (NoMethodError)
って怒られます。
use_transactional_fixturesの定義探してきて active_record/fixtures をrequireしてやっても
今度はテストを実行しても結果が何も出力されません。
ググったら同じ問題で悩んでる外人さんがけっこういるようなんですけど
解決策が全く見つかりません。
誰か同じ問題に遭遇したひといません?
0642nobodyさん
2006/10/23(月) 05:29:38ID:???0644nobodyさん
2006/10/23(月) 16:47:32ID:???方法をご存じの方いませんか?
0645nobodyさん
2006/10/25(水) 05:29:33ID:???とりあえず <% から %> までの色を変えたいのですが。
0647nobodyさん
2006/10/27(金) 08:46:58ID:???0648nobodyさん
2006/10/27(金) 10:08:12ID:???2つの単語を入力してググる作業量は、
あきらかに後者の方がコストが低いと思われるのだが
0649nobodyさん
2006/10/29(日) 20:13:03ID:???> あきらかに後者の方がコストが低いと思われるのだが
ぐぐるとゴミが大量に出てくるから、そのゴミを読むコストが発生しますね。
0650nobodyさん
2006/10/29(日) 20:55:10ID:???0651佐賀県
2006/10/29(日) 22:18:08ID:???0652nobodyさん
2006/10/30(月) 10:27:58ID:???0653nobodyさん
2006/10/30(月) 23:52:36ID:???0654nobodyさん
2006/10/31(火) 00:12:00ID:???0655nobodyさん
2006/10/31(火) 07:16:32ID:???0656nobodyさん
2006/11/01(水) 09:16:14ID:???0657nobodyさん
2006/11/01(水) 23:43:09ID:???0658nobodyさん
2006/11/02(木) 17:51:24ID:NmWkO3mqmigrateの定義を変えてdefaultをはずせばインストールはできるのだけど・・・もっとスマートな対処方法はあります?
環境
os : windows xp
Ruby : 1.8.5
Ruby on rails : 1.1.6
MySQL : 5.0.26
0659nobodyさん
2006/11/02(木) 20:57:06ID:???1. 上の内容をそのまま Rubricks の開発者に知らせる
2. 1週間待つ
3. 次のバージョンの Rubricks をインストール
0660nobodyさん
2006/11/04(土) 23:38:45ID:???ttp://undeadly.org/cgi?action=article&sid=20061103010033
0661nobodyさん
2006/11/07(火) 00:44:45ID:???入力 → 確認 → DB保存
と言う流れを想定しているのですが、
確認画面を表示する前に入力チェックを行う場合、Controllerにて自前のバリデータを実装する必要がありますか?
DBに保存される前にActionRecordにて実行されるvalidates_*をController側にて使う方法はありますか?
初歩的な質問ですみません。
0662nobodyさん
2006/11/07(火) 02:01:52ID:???http://www.fdiary.net/ml/rails/msg/387
この質問と同じかね?
対象のオブジェクトのvalid?を呼べばokっぽいね
0663nobodyさん
2006/11/07(火) 20:39:19ID:gijex/gcRuby on Rails Podcast
http://podacademy.jp/2006/05/ruby_on_rails_podcast.html
こんなのあったのか。
なに言ってるかわからんが。
0664nobodyさん
2006/11/07(火) 22:01:37ID:???ttp://www.wiseknot.co.jp/network/index19.html
でも3150円で100MBディスク。ちょっと高すぎ。
0665nobodyさん
2006/11/08(水) 00:06:37ID:???サーバーを起動するときに
ruby script\server
のようにいちいちプロンプトに入力せずに
サーバーを立ち上げるよい方法はありますか?
0666nobodyさん
2006/11/08(水) 00:41:29ID:???ショートカット作ればいいんじゃね?
あとは、mongrelがwindowsサービスに対応してるから使ってみれば。
http://mongrel.rubyforge.org/docs/win32.html
0667nobodyさん
2006/11/08(水) 02:06:38ID:???ありがとうございます。
ショートカットはどのようにつくればよいのでしょうか?
特定の操作を実行させるスクリプトのようなものがあるのでしょうか?
0669nobodyさん
2006/11/08(水) 02:20:44ID:???ありがとうございます。
右クリックを勉強するにはどうしたらいいのでしょうか?
特定の操作を勉強させるスクリプトのようなものがあるのでしょうか?
0670nobodyさん
2006/11/08(水) 02:48:43ID:???右クリックでサーバー起動できんのか?
アホが。
0671nobodyさん
2006/11/08(水) 06:06:18ID:???右クリック→新規作成→ショートカットの作成
項目の場所「ruby script\server」
できあがったショートカットを右クリック→プロパティ
作業フォルダをRailsのプロジェクトがあるディレクトリに変更する。
0675nobodyさん
2006/11/08(水) 19:57:56ID:???0676nobodyさん
2006/11/08(水) 19:58:38ID:???0677nobodyさん
2006/11/08(水) 21:33:47ID:???0678nobodyさん
2006/11/08(水) 23:39:45ID:???0679nobodyさん
2006/11/09(木) 01:48:39ID:???0680nobodyさん
2006/11/09(木) 07:44:30ID:SJZYMvtsserver立ち上げとか、rakeがクソ遅いのは、なぞだけど
>>664
クソたkkkkkkkkえええ
年3万5千で、100MBってどんだけ暴利だよ
0681nobodyさん
2006/11/09(木) 12:01:54ID:???0682nobodyさん
2006/11/09(木) 19:36:56ID:???そんな客の付かなそうなサービスでは暴利と言わないような・・・
0683nobodyさん
2006/11/09(木) 22:09:55ID:???Ruby on Railsの統合開発環境,まつもと氏が在籍するNaClとOSJが発売
http://itpro.nikkeibp.co.jp/article/NEWS/20061109/253173/
これってRadRailsを日本語化しただけ?
0684nobodyさん
2006/11/09(木) 22:13:50ID:???0685nobodyさん
2006/11/09(木) 22:24:33ID:???でもRadRailsとサポートで5万/年はないだろ。
0686nobodyさん
2006/11/10(金) 00:15:53ID:???現時点では妥当と言えなくもないかも。
数が出たら淘汰されるだろうけど。
0687nobodyさん
2006/11/10(金) 02:07:09ID:MOdLwaSY5万でも。十分価値あると思うよ。
Linuxデストリでたまにある
「インストールに関する」質問、1年間無制限、
なんてのと違うからな。
0688nobodyさん
2006/11/10(金) 02:11:14ID:MOdLwaSYhttp://www.railsplatform.jp/products/
↑ここに、
Rails Platform 運用サポート(メールによる回数無制限の問合せ対応)
って書いてあるな(汗)
0689nobodyさん
2006/11/10(金) 09:29:34ID:???Railsの質問には答えてくれないだろ
0690nobodyさん
2006/11/10(金) 12:25:17ID:???0691nobodyさん
2006/11/10(金) 20:03:55ID:FyhGUGXb普段、日本語ドキュメントしか読まないので、
Railsのドキュメントでよくわからないことがあります。
↓この中でattributesというのは、何のことなんでしょうか??
http://api.rubyonrails.org/classes/ActionController/Base.html
インスタンス変数??にしても、@つけなくていいですよね。
インスタンスメソッド??
0692nobodyさん
2006/11/10(金) 20:26:15ID:eD+sctJrJavaScriptを使ってクライアントサイドでしようとすると、
JavaScriptをそれぞれのフォーム要素に対して書かないといけないですか?
それとも、何か便利な機能がRailsにありますか?
0693nobodyさん
2006/11/11(土) 13:07:17ID:???ヒント: attr_accessor
0694nobodyさん
2006/11/11(土) 16:11:49ID:nJ5Gc6gjhttp://www.railsplatform.jp/news/2006/11/09/20061109/
>Windows XPを対象に、開発はもちろん小規模なビジネスアプリの運用までを想定しています。
これって、XPのEULA違反にはならんのか?
0695nobodyさん
2006/11/11(土) 16:16:42ID:nJ5Gc6gjおまえ、Java系とかOracleとかのサポート費とか知らんの?
5万/月じゃ、逆に安かろう悪かろうという印象しか与えない。
0696nobodyさん
2006/11/12(日) 02:21:31ID:???導入するかどうかの権限を持っている人は
rails が流行っていることは知っていても技術的にどうかはまったく知らないので
実際に使えるかどうかを担保してくれる何かを必要としている。
安心料が 5 万なら安いもの。
0698nobodyさん
2006/11/12(日) 13:32:07ID:5FI2WVFP0699nobodyさん
2006/11/12(日) 13:35:18ID:???0700nobodyさん
2006/11/12(日) 19:31:17ID:???> 安心に値するようにするには、値段を数十倍にしないとダメだ。
その通りだと思うよ
高けりゃいいんだろって、たくさんの人が思っている
0701nobodyさん
2006/11/12(日) 22:58:42ID:???このページ見て学習してるんですけど、
真ん中あたりの、「項目の追加」ってところで、
<%= link_to("Edit", :action => "edit", :id => @item.id) %>
ビューにこういうタグを付け足せと書いてあり、付けたしたのですが、ページ通りに表示されるものの、
Editの文字をクリックすると、
http://localhost:3000/todo/edit/1
このページに飛んで、
Unknown action
No action responded to edit
こういうエラーが出てページに書いてある通り編集ページに行きません。
なぜでしょうか?よろしくおねがいします。
あと気になる点が1つ
script/generate scaffold Todo
を実行すると、viewにtodosディレクトリが追加されるんですが、このページではtodoディレクトリで進んでます。
これに関係してるかわかりませんが一応。。。
0706nobodyさん
2006/11/13(月) 22:41:19ID:S119A4ey事前にsessionにユーザがあるかどうかを調べたいと思います。
test_edit_processで
sessionに直に(例「user:123 password:abc」)を格納する方法を教えて下さい。
loginメソッドを実行しようと思ったのですが、
単体テストで2つのメソッド(login と edit_process)を実行するのも
ポリシーに逆らってしまうので、どうぞお願いします。
assert_not_nil(session[:user])でテストしたいと思います。
■ このスレッドは過去ログ倉庫に格納されています