【RoR】Ruby on Rails Part11
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/12/11(土) 10:58:56ID:???【Ruby】Ruby on Rails Part10
http://hibari.2ch.net/test/read.cgi/php/1282991262/
■参考サイト
<英語>
本家:http://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/
http://twitter.com/dhh
http://www.loudthinking.com/
0104nobodyさん
2011/01/01(土) 21:14:41ID:???ARは基本RDB用のみ、DMはもっと抽象化されててBigTableやNoSQLもアダプタがあればいける
あとDMはモデルでスキーマ定義必須だから、そこ見ればどんなDBかすぐわかる
ARはそこらへんわかりづらい
ARは3.0でどこまでかわってるかはよく知らない
0105nobodyさん
2011/01/01(土) 21:32:08ID:???新年早々乙
ちょっと上の方でRails3の本の話題になっていたけれども
はじめてのRuby on Rails3(I・O BOOKS)
という本はどうなんでしょう?
去年の11月出版みたい
0106nobodyさん
2011/01/01(土) 22:10:05ID:???0107102
2011/01/02(日) 03:46:53ID:???なるほど、ありがとうございます。
これからActiveRecordに変わってDataMapperが台頭していく流れなんですかねぇ。
NoSQLDB自体使いどころを選ぶみたいですが、RDBも使えるのなら両方使えてツブシが利く方がよさげですが・・
0108nobodyさん
2011/01/02(日) 04:15:28ID:???0110nobodyさん
2011/01/02(日) 16:13:37ID:???正直、どれも良くできてるんで何使っても変わんない気がするんだけど
0111nobodyさん
2011/01/02(日) 16:34:18ID:???0112nobodyさん
2011/01/02(日) 23:48:10ID:???0113nobodyさん
2011/01/03(月) 17:16:11ID:???半分以上がfind_by_sqlになったぞ
ルーティングを無闇に定義して逆にごちゃごちゃしてくるし
規約でどうこうやるのも限界を感じるわ
0114nobodyさん
2011/01/03(月) 21:40:36ID:???テーブル設計とARの使い方が間違ってる部分が多いんじゃないかと
とはいえ、find_by_sqlが必要になる場面ってちらほらあるんだよな..
0115nobodyさん
2011/01/03(月) 23:26:51ID:???でもまぁそういう、SQL考えるだけで数時間かかるようなのはSQLにまかせて
定型的なモンだけARでやって楽しようぜ!ってのがARの思想だと思う
0116nobodyさん
2011/01/04(火) 00:53:01ID:???0117nobodyさん
2011/01/04(火) 08:47:58ID:???0118nobodyさん
2011/01/04(火) 10:54:58ID:???0119nobodyさん
2011/01/04(火) 13:24:48ID:???0120nobodyさん
2011/01/04(火) 14:03:16ID:???それがなぜSQLを直接書く人と結びつくのかも不明
0121nobodyさん
2011/01/04(火) 14:06:54ID:???0122nobodyさん
2011/01/04(火) 14:47:07ID:???where句とかのレベルのSQLは書かざるを得ない事が多い気がする。
自分の場合は、それも嫌だったからARを拡張して、全く書かずに済むようにしてるけど、
まだそれ程複雑な物作ってないから、書かずに済んでるのかな。
0123nobodyさん
2011/01/04(火) 14:56:38ID:???PGやめろとか、素質無しとか言われたことがある
もちろんスルーしてやったぜ
0124nobodyさん
2011/01/04(火) 15:23:51ID:???0125nobodyさん
2011/01/04(火) 21:49:18ID:???自分の経験上、SNSサイトですら少し規模が大きくなると細分化されたデータをたくさん所持するようになって
関連の無いテーブルから一度にデータを取ってくることが日常茶飯事になる。
これはテーブルの設計どうこうで済む問題じゃない。
関連テーブルを辿れるレベルではどうにでもなるが。
0126nobodyさん
2011/01/04(火) 22:17:44ID:???○ 別のDBサーバから
0127nobodyさん
2011/01/04(火) 22:57:36ID:???データが相当あったって業務系なんかの場合は、
テーブルをスライスしてDBを分散させる必要なんてほとんどない。
一つ一つの負荷は大したことなくても、アクセス数がハンパないってのは非常につらい。
0128nobodyさん
2011/01/05(水) 00:31:53ID:???長年に渡って蓄積されたバッドノウハウの塊のようなやつとか
0129nobodyさん
2011/01/05(水) 01:22:06ID:???”アプリケーションによる”だけじゃないか
0130nobodyさん
2011/01/05(水) 05:13:54ID:???その辺りを考慮しないでSQL直書きしてるのを見かけたら脊髄反射的に批判するのは究極の短絡的思考だと思います
0131122
2011/01/05(水) 06:58:47ID:???もちろん、関連テーブルを辿れるレベルの話です。
素のARでは、それでも直書きせざるを得ない事があるので、
それを回避するために拡張したというだけです。
0132nobodyさん
2011/01/05(水) 07:45:31ID:???普通にAR使ってるんだよね?
高負荷サイトで普通に使えるなら問題ない。
0133nobodyさん
2011/01/05(水) 09:40:59ID:???0134nobodyさん
2011/01/05(水) 22:35:48ID:???大変な部類じゃないのか?
0135nobodyさん
2011/01/06(木) 01:32:08ID:???数十行のSQLを書くことも稀だろう。
0136nobodyさん
2011/01/08(土) 03:24:26ID:Oy6jKTHPhttps://github.com/norman/disqus
http://disqus.rubyforge.org/
http://michitoshi.blogspot.com/2010/11/disqus.html
DISQUS CommentsのTwitterコメント投稿・表示欄を掲載する手順 Kawanet Tech Blog/ウェブリブログ
http://kawa.at.webry.info/201008/article_8.html
0137nobodyさん
2011/01/08(土) 06:13:10ID:???おばあちゃん
ありがとう
おばあちゃん
ほんまに
ありがとう
0138nobodyさん
2011/01/08(土) 22:38:35ID:???仲間はずれにされました;;
0139nobodyさん
2011/01/08(土) 22:45:47ID:???別にRails > CakePHPとか思ってるわけじゃなくて、純粋にCakePHPを使うメリットが知りたい
0140nobodyさん
2011/01/09(日) 00:36:37ID:???聞くまでもない
0141nobodyさん
2011/01/09(日) 02:10:48ID:???0142nobodyさん
2011/01/09(日) 03:25:14ID:???0143nobodyさん
2011/01/09(日) 05:26:39ID:oSWZOkDKhttp://itpro.nikkeibp.co.jp/article/OPINION/20071031/286028/
開発に取りかかって約2カ月で完成した。
「VBscriptならこの倍,PHPでも1.5倍はかかっていたのではないか」(宮島氏)。
コード量も10分の1になった。
VBsciptではコードを再利用する際にコピーしていたのに対し,
Rubyではクラス継承により集約でき,変更の際の見通しもよくなった。
0144nobodyさん
2011/01/09(日) 05:34:12ID:oSWZOkDKインタビュー:[楽天]Ruby活用事例とROMA,Fairy
http://gihyo.jp/dev/column/01/prog/2010/030801
今では日に200万とか,多いものだと600万くらいのトランザクションが発生するシステムで使っていますが,
すべて問題なく稼動しています。
インタビュー:[楽天]Ruby活用事例とROMA,Fairy
http://gihyo.jp/dev/column/01/prog/2010/030801?page=2
パフォーマンスも当然ベンチマークで要件をクリアできていることを確認していましたし,
実稼動後も特に問題になったことはないです。
興味深い点としては,RailsとCakePHPを比べたところ,高負荷時にはRails のほうが大幅に応答性能が高いという結果が出たことですね。
これは200リクエスト/秒くらいからPHPの応答性能が急激に下がるのが原因です。
Rubyはそれほど大きくはパフォーマンスが落ちないんです。
0145nobodyさん
2011/01/09(日) 08:56:50ID:???0146nobodyさん
2011/01/09(日) 10:39:02ID:???それ再利用と言うのか?
コピーして新しく作成しちゃってるじゃん
0147nobodyさん
2011/01/09(日) 11:02:47ID:hPSqOLvQ0148nobodyさん
2011/01/09(日) 11:04:24ID:???さすがrails様は次元が違いますね^^
0149nobodyさん
2011/01/09(日) 12:04:15ID:???0150nobodyさん
2011/01/09(日) 13:09:00ID:???ただの末端ユーザーにとってはVBと違いはほとんど無い
0151nobodyさん
2011/01/09(日) 13:28:56ID:???試行錯誤を繰り返すタイプの「生粋のエンジニア」なのか「似非Webエンジニア」なのかという差ということですね。
「PHPだけできます」という人間は吐いて捨てるほどいるけど、rails使いのように、appサーバの負荷や
フレームワークの負荷に敏感な「生粋のエンジニア」は少ないということですね」
これらの差は、非エンジニア職である経営層は一生気づくことのない差なんでしょうね。
その差に気づくことが出来ない経営者が仕切っている会社は
一生、web業界において、勝ち組になることは出来ないでしょう。
0152nobodyさん
2011/01/09(日) 16:17:49ID:???0154nobodyさん
2011/01/09(日) 20:35:35ID:???Rails厨が何を言っても憐れに見える。
Cakeの誕生でわざわざRailsの開発環境整える意味も皆無になったわけで
さっさと諦めればいいのに。
0156nobodyさん
2011/01/09(日) 22:35:08ID:???0157nobodyさん
2011/01/10(月) 01:10:46ID:???0158nobodyさん
2011/01/10(月) 04:09:07ID:SqSUf4Y5Mac OS X 10.6.6
Ruby 1.8.7
rails 2.3.8
MySQL5.5.8
でRuby on Railsを使いたいのですが
rake db:migrateとすると以下のエラーが出ます。
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
dlopen(/Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle, 9): Library not loaded: libmysqlclient.16.dylib
Referenced from: /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle
Reason: image not found - /Library/Ruby/Site/1.8/universal-darwin10.0/mysql.bundle
(See full trace by running task with --trace)
gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
を行いgem listで調べるとmysql (2.8.1)が入っています。
いろいろ調べたのですがわからないので誰か教えてください。
よろしくお願いいたします。
0159nobodyさん
2011/01/10(月) 09:19:57ID:KNJg+u2Yhttp://hibari.2ch.net/test/read.cgi/hosting/1259841636/l50
http://hibari.2ch.net/test/read.cgi/hosting/1291993724/l50
http://daybook.biz/category/server/dedicatedserver/
http://www.webhostingtalk.com/forumdisplay.php?f=36
0160nobodyさん
2011/01/10(月) 09:30:12ID:Us1Ofr5Vexport DYLD_FALLBACK_LIBRARY_PATH
とやったらどうなる?
0161158
2011/01/10(月) 22:27:20ID:SqSUf4Y5返信遅くなってすみません。
なにも出ません。
そしてrake db:migrateの結果も変わりません><
0162nobodyさん
2011/01/10(月) 23:19:28ID:???一回gem uninstall mysqlしてからやり直してみては?
0163nobodyさん
2011/01/10(月) 23:31:26ID:???じゃなかったっけ?
0164158
2011/01/11(火) 00:25:44ID:w92gJgj0gem install mysql2 は駄目でした
>162
これから64bitいれ直してみます!
0165158
2011/01/11(火) 00:33:28ID:w92gJgj0で入れたのですがだめでした。。。
もうかれこれ4日くらい同じところでつまずいています。泣
0166nobodyさん
2011/01/11(火) 00:47:17ID:???0167158
2011/01/11(火) 00:57:51ID:w92gJgj012月にmacを買いまして最初から10.6.6です。
それでmysqlを入れました。
0168nobodyさん
2011/01/11(火) 07:49:17ID:???0169nobodyさん
2011/01/11(火) 11:12:56ID:???class CreateRelationCategories < ActiveRecord::Migration
def self.up
create_table :relation_categories do |t|
t.references :post
t.references :category
t.integer :main
t.timestamps
end
add_index :relation_categories, :post
add_index :relation_categories, :category
end
def self.down
drop_table :relation_categories
end
end
0171nobodyさん
2011/01/11(火) 12:07:49ID:KMpfNobVどんなエラーよ
0172nobodyさん
2011/01/11(火) 13:34:18ID:???referencesのとこはpostでも
0173nobodyさん
2011/01/11(火) 18:35:17ID:???0174nobodyさん
2011/01/11(火) 23:21:57ID:???GETパラメータでsjisの文字列を渡すと
params[:key].blank?
でArgument Error となってしまいます。
params[:key].encode("utf-8").blank?
params[:key].force_encofing(“utf-8“).blank?
は試したのですが結果は変わりません。
どうすればよいのでしょう?
0175nobodyさん
2011/01/11(火) 23:32:17ID:???0176nobodyさん
2011/01/11(火) 23:47:34ID:EbNzEbCqできればエラーを引き起こしたArgumentの値も欲しいが。
0177174
2011/01/11(火) 23:52:59ID:???すみません
エラーメッセージは以下です。
invalid byte sequence in UTF-8
activesupport (3.0.3) lib/active_support/core_ext/object/blank.rb:68:in `=~'
rails new test
でアプリ作成後、
application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery
def index
warn params[:key].force_encoding("UTF-8").blank?
end
end
root.rb
root :to=>"application#index"
を記述し、
http://127.0.0.1:3000/?key=%83e%83X%83g
で再現します。
0178nobodyさん
2011/01/12(水) 01:01:58ID:???または表もutf-8にする
0179nobodyさん
2011/01/12(水) 08:55:08ID:PVfPMtkv間違いなくUTF-8が入っているけどアプリにはそれがわからない
という場合に使う。
とりあえずparams[:key] と params[:key].encoding を出力してみれば?
0180nobodyさん
2011/01/12(水) 10:58:19ID:Jb3zJbvVparamsを組み立てる途中で強制的にUTF-8エンコーディング情報を
付けてしまう(ActionDispatch::Http::Parameters)。
とりあえずは
key = params[:key].encode('UTF-8', 'Shift_JIS')
みたいにエンコードし直すのが手っ取り早い。
0181nobodyさん
2011/01/12(水) 15:26:13ID:???initializers配下で overrideの定義を書いたファイルをrequireするやり方だと、上手くいきません。
(initializers配下のファイルが読み込まれたあと、pluginのファイルが読み込まれるため?)
0182nobodyさん
2011/01/12(水) 16:21:53ID:???0183158
2011/01/12(水) 17:18:42ID:gnHL4Y+Whttp://www-jp.mysql.com/downloads/mysql/のサイトから
MySQL Community Server 5.5.8のMac OS X ver. 10.6 (x86, 64-bit), DMG Archiveをダウンロードしました。
>170
portで入れた方がいいんですか。
アドバイスありがとうございます。
0184nobodyさん
2011/01/12(水) 17:29:17ID:???あとはrubyのバージョンとrubyをどうやって入れたか。
同じような環境(mysqlはバイナリインストール、rubyはソースからインストール)だけど、全く問題出てないので。
0185158
2011/01/12(水) 18:35:35ID:gnHL4Y+Wruby1はmacにもともと入ってやつでバージョンは1.8.7です。
0186nobodyさん
2011/01/12(水) 18:54:35ID:Jb3zJbvVそうでないMysqlのライブラリって一緒に使えるのかな。
0187158
2011/01/12(水) 18:57:44ID:gnHL4Y+W一から入れ直してみようと思います。
みなさまいろいろ親切にありがとうございました!
0188nobodyさん
2011/01/12(水) 22:10:57ID:???返答ありがとうございます。
しかし、after_initializeの中でrequireしてもダメのようです。
困った。。。
ttp://stackoverflow.com/questions/4412018/rails-devise-how-to-render-login-page-without-a-layout
ここにあるAnswerの subclass を作るやり方のようにやりたいのですが。。。
0189nobodyさん
2011/01/12(水) 22:53:11ID:PVfPMtkvファイルをrequireしてしまってもダメ?
0191nobodyさん
2011/01/13(木) 12:58:25ID:???回答ありがとうございました。
結局一日調べて
actionpack-3.0.3/lib/action_dispatch/http/parameters.rb
74行目付近に
when String
value=NKF.nkf("-w",value)
value=value.force_encoding(Encoding::UTF_8) if
value.respond_to?(:force_encoding)
を追加したものを用意することで対応できました。
0192nobodyさん
2011/01/14(金) 13:18:07ID:BgLvsnpsscaffoldを使ってモデルを作成した際、new.html.erbのform_forのtext_fieldに日本語を入力すると
incompatible character encodings: UTF-8 and ASCII-8BIT
というエラーが出ていました。
これはshow.html.erb、index.html.erbで.force_encoding 'UTF-8'としてエンコーディングすることで解決しました。
しかしながらフォームから値を入力する際に日本語を入力すると表示はできるのですが編集しようとした際にエラーが出ます。
Encoding::CompatibilityError in Events#edit
Showing app/views/events/edit.html.erb where line #13 raised:
incompatible character encodings: UTF-8 and ASCII-8BIT
Extracted source (around line #13):
10: <p>
11: <%= f.label :イベント名 %><br />
12: <%= f.text_area :event %>
13: </p>
14: <p>
15: <%= f.label :イベントの種類 %><br />
16: <%= f.text_field :subject %>
このような場合、どのような処理を行えばこのエラーは取れますか?
0193nobodyさん
2011/01/14(金) 13:55:11ID:???きりないから、可能ならRails3.0.3にするかRuby1.8.7に変更した方がいいよ
0194nobodyさん
2011/01/14(金) 14:03:41ID:???あと、htmlの指定でもutf8になってるんだろうか。
sjisが入力されてるような気がする
0195nobodyさん
2011/01/14(金) 14:13:12ID:BgLvsnpsなるほど…。
やっぱりそこを変えたほうがいいのですね。
>>194
両方utf8になっていると思われます。
0196nobodyさん
2011/01/14(金) 22:23:10ID:???Post.joins(:tags).where(['tags.name like ?', params[:q]]).group('post.id')
0197nobodyさん
2011/01/14(金) 22:25:58ID:???0198nobodyさん
2011/01/15(土) 00:23:08ID:???0199nobodyさん
2011/01/15(土) 08:49:55ID:???post = Post.new(:title => 'あい')
post.tags.build(:name => '純愛')
post.tags.build(:name => '恋愛')
post.save
Post.joins(:tags).where(['tags.name like ?', '%愛%']) #=> 「あい」が2つ出る
0200192
2011/01/17(月) 00:57:31ID:eCmWyBLtRails3.0.3にするかRuby1.8.7に変更した方がいいとアドバイスをもらったものです。
Railsを1.9.2でという約束なのでRailsのバージョンを変えました。
現在の環境はOSはWindows7で
ruby 1.9.2p0 (2010-08-18) [i386-mingw32],rails 3.0.3です。
form_forを使ってDBに値を格納し、index.html.erbやshow.html.erbで表示をすると
値がおかしいです。と、いいますのも、MySQLでselect文を使って表示してみると
きちんと、time型はtime型で、text型はtextで格納されているのですが
controllerで@event = Event.find(params[:id])とし、showやindexで <%=h @event.e_start %>
(e_startはtime型です)とするとfloat型の数値が表示され、text型のe_commmentを表示しようとすると
int型の0が表示されます。
原因がわからず困ってます。誰か知恵をください。お願いします。
0201nobodyさん
2011/01/17(月) 01:10:44ID:???デフォルトでエスケープされる
mysqlのライブラリがおかしいとかじゃないのか?
ちゃんとmysql2使ってる?
0202192
2011/01/17(月) 03:47:43ID:eCmWyBLt<%=h の「h」いらないんですね!自分何も知らなさすぎるorz
mysql2使ってます!
0203nobodyさん
2011/01/17(月) 23:38:18ID:???ここにいる人のほとんどが使ってないだろうから
というわけで俺も力になれません
■ このスレッドは過去ログ倉庫に格納されています