【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
0578nobodyさん
2006/10/06(金) 18:03:09ID:???他の方がどうやって作っているのか知りたいナリ。
0582567
2006/10/07(土) 00:34:30ID:???ちがうcontrollerのactionを呼べないから困ってるんだってば。
Class FooController < ApplicationController
def index
# なんかする
BarController::test
end
end
みたいなことできないじゃん
0583nobodyさん
2006/10/07(土) 11:38:27ID:???0585nobodyさん
2006/10/07(土) 15:31:29ID:???少しでも調べた?
0586nobodyさん
2006/10/07(土) 16:23:17ID:???0587nobodyさん
2006/10/08(日) 20:04:07ID:???0588nobodyさん
2006/10/08(日) 20:47:33ID:CYA5XJpaconfig/database.yml
に、
encoding: utf8
と追加しても、上手く行きませんでした。
そこで、charsetするときに、
suppress(ActiveRecord::StatementInvalid) do
ActiveRecord::Base.connection.execute 'SET NAMES UTF8'
end
を追加したら、上手くUTF8で処理されました。
ActiveRecordのMySQLバインディングのソース見ると、encoding: で、SET NAMES しているのに、
なんででしょうか?
バグなのかな?
0589nobodyさん
2006/10/08(日) 20:54:22ID:CYA5XJpamy.cnfに
、
[mysqld]
skip-character-set-client-handshake
追加したら、特に設定なしでも文字化けしないようになりました!
念のため、encoding: utf8 は、設定しておきます
0590nobodyさん
2006/10/10(火) 10:37:33ID:???scaffoldで作ったフォームを一部改良して、ドロップダウンリストでDBのテーブルを参照するみたいなのを作りたいのですが
どういう方針でいけばよいですか?
例えば
名前
[ ]
職業
[▼テーブルのフィールドから]
な感じです。
0591nobodyさん
2006/10/10(火) 14:47:29ID:???0592nobodyさん
2006/10/10(火) 14:57:13ID:???<%=
works = Work.find(:all, :order => :id)
collection_select('user', 'work_id', works, :id, :name)
%>
0594nobodyさん
2006/10/10(火) 23:38:15ID:???scaffoldからぬけ出そうとするとむちゃくちゃスキルを要求される。情報ないし。
書籍はいっぱい出てるけどねえ。
0595nobodyさん
2006/10/11(水) 07:33:16ID:???ど素人ならともかく他の言語でウェブアプリの開発の経験があればなんとなくわかるだろ。
0597nobodyさん
2006/10/11(水) 10:58:02ID:LrnXG0J2>>594じゃないが、perlで、簡単な掲示板とかカウンタしか作ったことない俺には、
けっこう、大変ですw
0598nobodyさん
2006/10/11(水) 13:21:05ID:???>>594じゃないが、Javaで、簡単な掲示板とかカウンタしか作ったことない私には、
けっこう、大変ですw
0599nobodyさん
2006/10/11(水) 14:00:17ID:???どこか設定する部分があるんでしょうか??
0600599
2006/10/11(水) 14:11:58ID:???0602nobodyさん
2006/10/12(木) 07:13:58ID:???>>594じゃないが、rubyで、簡単な掲示板とかカウンタしか作ったことない私には、
けっこう、大変ですw
0604nobodyさん
2006/10/14(土) 10:18:23ID:???0605nobodyさん
2006/10/14(土) 10:34:44ID:???・楽しくてしょうがない。
・必要だけど人に頼む金がない。
のどっちかがないと書けるようにはならないよ。
0606nobodyさん
2006/10/14(土) 14:24:33ID:???1) 気持ちよくてしょうがない
2) 必要だけど他人に手コキしてもらう金がない。
のどちらかがないと逝けるように上達しないよ。
0607nobodyさん
2006/10/14(土) 15:50:47ID:???出来上がっていく過程が好きなんだんけどな。商品一覧ができた、ボタンを押すと投稿されるようになった…とか。
プログラミング言語の仕様そのものを楽しんでいる香具師がいるけど、殆ど多くが理科系で研究大好きなPG。
自分の世界に没頭しちゃって周りとのコミュニケーションを積極的に拒む。会議では企画や営業相手に専門用語でまくしたてちゃう。
…まぁ、いいんだけどね。好きこそものの上手なれっていうし。
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:???■ このスレッドは過去ログ倉庫に格納されています