【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/
0002nobodyさん
2010/12/11(土) 11:21:47ID:???http://rails-erd.rubyforge.org/gallery.html
0003nobodyさん
2010/12/11(土) 11:33:00ID:???http://www.railsplugins.org/home
情報処理推進機構:オープンソフトウェア:OSS人材育成:OSSモデルカリキュラム導入実証
http://www.ipa.go.jp/software/open/ossc/seika_1005_1.html
Railsで作ったひとりサービスをリリースするまでやっておくこと20個 : 僕は発展途上技術者
http://blog.champierre.com/archives/897
はじめる! Cucumber - 達人出版会
http://tatsu-zine.com/books/cuke
Rails ERD ? Entity-Relationship Diagrams for Rails
http://rails-erd.rubyforge.org/
Rails3でどう書けばいいかわからない時、参考になる7つのURL | KRAY Inc
http://kray.jp/blog/url_reference_for_rails3/
0004nobodyさん
2010/12/11(土) 15:55:05ID:???SELECT * from posts WHERE created_at >= '2000-01-01'
よりも
SELECT * from posts JOIN (SELECT id from posts WHERE created_at >= '2000-01-01') a ON USING(id);
のほうが早いですがこのようにSQL自動的に変換する方法はありますか?
0005nobodyさん
2010/12/11(土) 17:29:12ID:Mhj/vziNという覚悟で。
0006nobodyさん
2010/12/11(土) 17:59:09ID:???0007nobodyさん
2010/12/11(土) 18:39:30ID:???言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
0008nobodyさん
2010/12/11(土) 20:04:32ID:???ログを見ていると時々以下のようなエラーが出ています。
Timeout::Error (execution expired) :
/usr/local/ruby/lib/ruby/1.8/timeout.rb:60:in 'open'
/usr/local/ruby/lib/ruby/1.8/net/smtp.rb:551:in 'do_start'
/usr/local/ruby/lib/ruby/1.8/net/smtp.rb:551:in 'do_start'
/usr/local/ruby/lib/ruby/1.8/net/smtp.rb:525:in 'start'
おそらくタイムアウトでメールが送れなかった、ということだと思うのですが
原因が分かりません。
何か考えられる要因など分かる方がいましたら、教えていただけないでしょうか。
0009nobodyさん
2010/12/11(土) 20:41:41ID:???マジで誰か助けて。
gems/activerecord-3.0.3/lib/rails/generators/active_record/model/templates/model.rb
を自力で lib/templates のどこかにコピーしたらいいの?
0010nobodyさん
2010/12/11(土) 21:22:23ID:???ActiveRecord::Baseを継承するだけだし
それ以上やりたいから言ってるんだろうけど
0012nobodyさん
2010/12/11(土) 23:55:04ID:???rake -T してそれっぽいタスクがないか確認しる
手動でおくなら、lib/以下のはず
参考
ASCIIcasts - “Episode 216 - Generators in Rails 3”
http://asciicasts.com/episodes/216-generators-in-rails-3
0013nobodyさん
2010/12/11(土) 23:58:08ID:???具体的には、Railsで作ったウェブサイトに広告を貼りたいのですが
その広告を貼るためにはPHPモジュールを組み込む必要があるのです。
Railsのview内でPHPの文法を使ってrequireしたり変数の宣言したりしたいのですが、こんなことって出来るんでしょうか?
00149
2010/12/12(日) 00:50:15ID:???ソース読んでたら簡単にはいかなそうだったのと、ビューのテンプレートも
もっと増やしたかったのでgeneratorで自分用scaffoldを作ってやってます
もうThorのコードが変態すぎる!(いい意味で)
0015nobodyさん
2010/12/12(日) 03:27:56ID:EFmomRN2rails3 で mixiアプリの署名付きリクエストを検証したくて
http://d.hatena.ne.jp/urekat/20090530/1243693298
を見て、rails3用に色々いじってるんですが、うまくいきません。
ソース追うと
https://github.com/pelle/oauth/blob/master/lib/oauth/signature/base.rb
のverifyでfalseになっているのですが、
ぱっと見
def verify
self == self.request.signature
end
が、
selfはクラス自体で、self.request.signatureはクラスのインスタンス変数なので、
trueになることってあるのか?と思ってしまったのですが、あるのでしょうか?
どなたかアドバイスいただけると幸いです
0016nobodyさん
2010/12/12(日) 04:21:16ID:???0017nobodyさん
2010/12/12(日) 05:19:08ID:U+z3WATohttp://blog.tkmr.org/tatsuya/show/268-ruby-on-rails-10-tips
findメソッドはパワフルだけど基本SELECT * FROMなので場合によっては:selectで必要なカラムだけ読み込む、また:limitや:offsetを活用する
ごくごく基本的な Ruby on Rails のパフォーマンスチューニング
http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20071114
:conditions オプションでキーに使われるようなカラムにはインデックスを作成すべし
:selectで取得するカラムを絞ったらパフォーマンスが倍に
http://brass.to/blog/active_record_select_option.html
レコード件数は110万件くらい
カラム数は30程度
インデックスは効いている(explainで確認済み)
Rails で MySQL を使うときの注意点 | METAREAL
http://www.metareal.org/2007/07/24/notes-on-rubyonrails-with-mysql/
SQL を二段階に分けるといい
まず、最初の SQL でレコードの ID だけを SELECT する(int だけなので、このときの一時テーブルはメモリ上に作られる)
次に、その ID で必要な TEXT や BLOB を SELECT するんだ(これは ID による単純な検索なので一時テーブルは使われない)
MySQLパフォーマンスチューニングのためのインデックスの基礎知識
http://d.hatena.ne.jp/kiyo560808/20101117/1289952549
これを知っておかないと、MySQLサーバの再起動でDBデータの不整合が発生するかもしれません! - よかろうもん!
http://d.hatena.ne.jp/interu/20100817/1282041840
0018nobodyさん
2010/12/12(日) 05:21:19ID:U+z3WATohttp://d.hatena.ne.jp/tkng/20080811/1218442298
SpecialWarningというプラグイン
http://d.hatena.ne.jp/authorNari/20090205/1233840189
N+1問題などを監視してパフォーマンスを改善するRailsプラグインBullet
http://blog.digital-squad.net/article/149685338.html
複合キー
compositekeys ActiveRecord Composite Primary Keys
http://compositekeys.rubyforge.org/
Martin Fowler's Bliki in Japanese - エンタープライズRails
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?EnterpriseRails
MOONGIFT: ? Railsを見える化「RailRoad」:オープンソースを毎日紹介
http://www.moongift.jp/2007/07/railroad/
Unexpected Run: Rails3.0でモデルのER図を簡単に出力する方法
http://sawada0903.blogspot.com/2010/10/rails30er.html
「has_many :through の関連テーブル名には、relation_ の接頭辞を用いる」
http://d.hatena.ne.jp/hichiriki/20100622#1277195810
0019nobodyさん
2010/12/12(日) 16:27:44ID:???上に
> def ==(cmp_signature)
> Base64.decode64(signature) == Base64.decode64(cmp_signature)
> end
ってあるじゃん
0020nobodyさん
2010/12/12(日) 16:35:39ID:???標準ではできないんじゃね?
PHPで得た結果さえ使えればそれでいいなら、そのphpを単体で動かせるように別途phpを書いて
それをviewでJavaScriptで読み込むとかいろいろ方法はあるんじゃないの
本当にRubyからPHPのモジュールを読み込みたいなら俺は知らん
Railsに限った話じゃないし、Rubyのスレで聞けばいいけど
Ruby 初心者スレッド Part 40
http://hibari.2ch.net/test/read.cgi/tech/1292049975/
002215
2010/12/13(月) 03:07:52ID:aRjyTaj/>>19
すいません、しばらくPHPばかり触っていて演算子のオーバーロード
が頭にありませんでした。。ありがとうございます。
その後、色々調べていますが、やはりどうもうまくいきません。
例えば、
def ==(cmp_signature)
exit
Base64.decode64(signature) == Base64.decode64(cmp_signature)
end
のようにしても exitが実行されていないようで、普通の == 比較になってしまっているようなのです。
def verify
exit
self == self.request.signature
end
のようにすると、exitはちゃんと実行されるので、やはり == がなにかおかしい感じです。
rvm で Ubuntu 10.04.1 LTS に ruby-1.9.2p0を入れて使っているのですが、
同じような妙な挙動をしている方って他にいらっしゃるのでしょうか。。?
002315
2010/12/13(月) 03:08:40ID:aRjyTaj/また、== がおかしいのをとりあえず無視して ==メソッドの中身を verifyメソッドに書き足して
def verify
#self == self.request.signature
Base64.decode64(signature) == Base64.decode64(self.request.signature)
end
とすると、
#<OpenSSL::PKey::RSAError: Neither PUB key nor PRIV key:: nested asn1 error>
となりました。
追っていくと、
digestメソッドのところでえらーになっているみたいなのですが、これがまたよくわからず、
同じクラス内の digest プライベートメソッドを呼び出さず、
https://github.com/pelle/oauth/blob/master/lib/oauth/signature/rsa/sha1.rb
こちらの digest メソッドを呼び出しているようで、
#<OpenSSL::PKey::RSAError: Neither PUB key nor PRIV key:: nested asn1 error>
となります。
試しにrails consoleで
require '/home/hoge/.rvm/gems/ruby-1.9.2-p0/gems/oauth-0.4.4/lib/oauth/signature/rsa/sha1.rb'
して
(OAuth::Signature::RSA::SHA1).methods.grep /digest/
すると
[:digest_class, :digest_klass]
が返り、digestメソッドが含まれていません。
よく分からないのですが、この挙動は正しいのでしょうか。。?
全く解決できる見込みがありません。
ご教示いただけると幸いです。
0024nobodyさん
2010/12/13(月) 04:20:54ID:???どこに書くんでしょうか?
0025nobodyさん
2010/12/15(水) 02:06:31ID:???そのサイトのmixiのリンク先のページが無くなってるんだが、mixiのAPIの仕様が変わっているなんてことはないの?
あとはお約束の
http://en.lmgtfy.com/?q=Neither+PUB+key+nor+PRIV+key%3A%3A+nested+asn1+error
>>22-23
==が呼ばれていないのはよくわからないな
Railsならdevelopmentモードでファイルを編集しても再ロードされていないとかいう話ではないよな
それと動作見るなら、
Rails.logger.debug("hogehoge")
でログ取ればよいよ。loggerがdebugレベルを出力するときだけログが取られる。
0026nobodyさん
2010/12/17(金) 13:18:45ID:jG120pyfBuilding Mini Google in Ruby
http://www.slideshare.net/igrigorik/building-mini-google-in-ruby
0027nobodyさん
2010/12/18(土) 02:46:03ID:???Railsを動かすアプリケーションサーバーにもよると思うけどPassengerならできたよ
多分adsenseの広告張りたいんだよね?
PHPは別ファイルにしてpublic配下に置いて、それをViewからSSIで読み込んでやればおk
apacheでSSI関係の設定も必要
元の発想はこの辺の記事から Mongrelでも可能っぽい
http://yugui.jp/articles/642
http://yugui.jp/articles/644
0028nobodyさん
2010/12/19(日) 08:58:50ID:???0029nobodyさん
2010/12/19(日) 09:07:11ID:???0030nobodyさん
2010/12/19(日) 13:15:14ID:???public配下のphp/ad.php みたいなファイルをWebAPIに見立ててアクセス、
戻りの広告HTMLを表示する、という風にした
結局広告って最終的には素のHTML+JSになるからそれを表示出来ればいい
0034nobodyさん
2010/12/20(月) 01:13:38ID:???アドセンスだったらそのやりかたうまく行くのかな?
0035nobodyさん
2010/12/20(月) 20:00:11ID:???うちの会社なら鼻っからNGだなぁ
気持ち悪すぎる
0036nobodyさん
2010/12/20(月) 21:28:03ID:???query = params[:q].split(/\s/).map{|q| Regexp.new q rescue Regexp.new Regexp.quote(q)} if params[:q]
@posts = @posts.select{|x| query.all?{|q| x.title.match q || x.body.match q}} if params[:q]
@posts = @posts.paginate :page => params[:page], :per_page => 100
0037nobodyさん
2010/12/20(月) 21:35:01ID:???最初の@postsに100万件データが入っていても耐えられんの?
0038nobodyさん
2010/12/20(月) 21:35:59ID:???0039nobodyさん
2010/12/20(月) 21:40:18ID:???0042nobodyさん
2010/12/20(月) 22:03:31ID:???0044nobodyさん
2010/12/21(火) 00:46:04ID:???100万件と言ってるわけだが。
まあ個人作成で少数利用なら処理に1秒かかっても大丈夫だろうけど、
仕事でやられたら頭に血が上るレベルだぞ。
0045nobodyさん
2010/12/21(火) 01:06:16ID:???0047nobodyさん
2010/12/21(火) 02:01:07ID:???エンジニア同士なら、システム設計に意見する方が適切ではないかい
0048nobodyさん
2010/12/21(火) 02:25:17ID:???上で例に上げられてるのは他社の用意した広告プラットフォームでしょ
エンジニアの志向する技術とビジネスで求められる現実は乖離するのが間たり前で、それに柔軟に対応するのもエンジニアの務めだと思う
0049nobodyさん
2010/12/21(火) 09:15:01ID:???代替案も示さずに批判だけとかcgi.rbがいつまでも糞なままなのがruby界の陰湿さをよくあらわしていますよね
0050nobodyさん
2010/12/21(火) 09:59:57ID:???それに全く気づかないのは人間性の問題なんだろうな
0051nobodyさん
2010/12/21(火) 10:53:38ID:???偉そうなこと言う割にはちょっと考えられないような糞プログラムを晒してくれてるなw
■ このスレッドは過去ログ倉庫に格納されています