【RoR】Ruby on Rails Part11at PHP
【RoR】Ruby on Rails Part11 - 暇つぶし2ch1:nobodyさん
10/12/11 10:58:56
■前
【Ruby】Ruby on Rails Part10
スレリンク(php板)

■参考サイト
<英語>
本家:URLリンク(rubyonrails.org)<)
開発者のblog:URLリンク(weblog.rubyonrails.org)
参考wiki:URLリンク(wiki.rubyonrails.org)


<日本語>
Rails' wiki: URLリンク(wiki.fdiary.net)

URLリンク(twitter.com)
URLリンク(www.loudthinking.com)


2:nobodyさん
10/12/11 11:21:47
Rails ERD ? Gallery of example diagrams
URLリンク(rails-erd.rubyforge.org)


3:nobodyさん
10/12/11 11:33:00
Rails Plugins Compatibility Tracking - RailsPlugins.org
URLリンク(www.railsplugins.org)

情報処理推進機構:オープンソフトウェア:OSS人材育成:OSSモデルカリキュラム導入実証
URLリンク(www.ipa.go.jp)

Railsで作ったひとりサービスをリリースするまでやっておくこと20個 : 僕は発展途上技術者
URLリンク(blog.champierre.com)

はじめる! Cucumber - 達人出版会
URLリンク(tatsu-zine.com)

Rails ERD ? Entity-Relationship Diagrams for Rails
URLリンク(rails-erd.rubyforge.org)

Rails3でどう書けばいいかわからない時、参考になる7つのURL | KRAY Inc
URLリンク(kray.jp)










4:nobodyさん
10/12/11 15:55:05
mysqlだと

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自動的に変換する方法はありますか?

5:nobodyさん
10/12/11 17:29:12 Mhj/vziN
ORMを使うってのはそういう細かいチューニングを捨てても構わない
という覚悟で。


6:nobodyさん
10/12/11 17:59:09
それが本当だったらMySQLがおかしすぎるというだけの話だけどな

7:nobodyさん
10/12/11 18:39:30
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所

8:nobodyさん
10/12/11 20:04:32
Railsからメールを送信する機能があるWebサービスを運用しているのですが、
ログを見ていると時々以下のようなエラーが出ています。

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'

おそらくタイムアウトでメールが送れなかった、ということだと思うのですが
原因が分かりません。

何か考えられる要因など分かる方がいましたら、教えていただけないでしょうか。

9:nobodyさん
10/12/11 20:41:41
rails3 で rake rails:templates:copy してもモデル用テンプレートがどこにも無いんだが。
マジで誰か助けて。
gems/activerecord-3.0.3/lib/rails/generators/active_record/model/templates/model.rb
を自力で lib/templates のどこかにコピーしたらいいの?

10:nobodyさん
10/12/11 21:22:23
モデル向けのカスタムテンプレート機能はないんじゃないの?
ActiveRecord::Baseを継承するだけだし
それ以上やりたいから言ってるんだろうけど

11:nobodyさん
10/12/11 23:44:42
>>8
メールの送信に何使っているかわからないけど、メール送信ソフトのログ見ればいいんじゃね?


12:nobodyさん
10/12/11 23:55:04
>>9
rake -T してそれっぽいタスクがないか確認しる

手動でおくなら、lib/以下のはず

参考
ASCIIcasts - “Episode 216 - Generators in Rails 3”
URLリンク(asciicasts.com)


13:nobodyさん
10/12/11 23:58:08
RailsのviewからPHPのモジュールを読み込こむことは可能ですか?
具体的には、Railsで作ったウェブサイトに広告を貼りたいのですが
その広告を貼るためにはPHPモジュールを組み込む必要があるのです。
Railsのview内でPHPの文法を使ってrequireしたり変数の宣言したりしたいのですが、こんなことって出来るんでしょうか?

14:9
10/12/12 00:50:15
>>10,12
ソース読んでたら簡単にはいかなそうだったのと、ビューのテンプレートも
もっと増やしたかったのでgeneratorで自分用scaffoldを作ってやってます
もうThorのコードが変態すぎる!(いい意味で)

15:nobodyさん
10/12/12 03:27:56 EFmomRN2
質問させてください。
rails3 で mixiアプリの署名付きリクエストを検証したくて
URLリンク(d.hatena.ne.jp)
を見て、rails3用に色々いじってるんですが、うまくいきません。

ソース追うと
URLリンク(github.com)
のverifyでfalseになっているのですが、
ぱっと見

def verify
self == self.request.signature
end

が、
selfはクラス自体で、self.request.signatureはクラスのインスタンス変数なので、
trueになることってあるのか?と思ってしまったのですが、あるのでしょうか?

どなたかアドバイスいただけると幸いです

16:nobodyさん
10/12/12 04:21:16
その上で定義しているメソッドをみろ。

17:nobodyさん
10/12/12 05:19:08 U+z3WATo
Ruby on Railsのパフォーマンス向上に関する10のtips
URLリンク(blog.tkmr.org)
findメソッドはパワフルだけど基本SELECT * FROMなので場合によっては:selectで必要なカラムだけ読み込む、また:limitや:offsetを活用する

ごくごく基本的な Ruby on Rails のパフォーマンスチューニング
URLリンク(jijixi.azito.com)
:conditions オプションでキーに使われるようなカラムにはインデックスを作成すべし

:selectで取得するカラムを絞ったらパフォーマンスが倍に
URLリンク(brass.to)
レコード件数は110万件くらい
カラム数は30程度
インデックスは効いている(explainで確認済み)

Rails で MySQL を使うときの注意点 | METAREAL
URLリンク(www.metareal.org)
SQL を二段階に分けるといい
まず、最初の SQL でレコードの ID だけを SELECT する(int だけなので、このときの一時テーブルはメモリ上に作られる)
次に、その ID で必要な TEXT や BLOB を SELECT するんだ(これは ID による単純な検索なので一時テーブルは使われない)

MySQLパフォーマンスチューニングのためのインデックスの基礎知識
URLリンク(d.hatena.ne.jp)

これを知っておかないと、MySQLサーバの再起動でDBデータの不整合が発生するかもしれません! - よかろうもん!
URLリンク(d.hatena.ne.jp)

18:nobodyさん
10/12/12 05:21:19 U+z3WATo
[Rails] query-reviewerでRailsアプリのボトルネックを見つける
URLリンク(d.hatena.ne.jp)

SpecialWarningというプラグイン
URLリンク(d.hatena.ne.jp)

N+1問題などを監視してパフォーマンスを改善するRailsプラグインBullet
URLリンク(blog.digital-squad.net)

複合キー
compositekeys ActiveRecord Composite Primary Keys
URLリンク(compositekeys.rubyforge.org)

Martin Fowler's Bliki in Japanese - エンタープライズRails
URLリンク(capsctrl.que.jp)

MOONGIFT: ? Railsを見える化「RailRoad」:オープンソースを毎日紹介
URLリンク(www.moongift.jp)

Unexpected Run: Rails3.0でモデルのER図を簡単に出力する方法
URLリンク(sawada0903.blogspot.com)

「has_many :through の関連テーブル名には、relation_ の接頭辞を用いる」
URLリンク(d.hatena.ne.jp)

19:nobodyさん
10/12/12 16:27:44
>>15
上に

> def ==(cmp_signature)
> Base64.decode64(signature) == Base64.decode64(cmp_signature)
> end

ってあるじゃん

20:nobodyさん
10/12/12 16:35:39
>>13
標準ではできないんじゃね?

PHPで得た結果さえ使えればそれでいいなら、そのphpを単体で動かせるように別途phpを書いて
それをviewでJavaScriptで読み込むとかいろいろ方法はあるんじゃないの



本当にRubyからPHPのモジュールを読み込みたいなら俺は知らん
Railsに限った話じゃないし、Rubyのスレで聞けばいいけど

Ruby 初心者スレッド Part 40
スレリンク(tech板)

21:nobodyさん
10/12/12 23:05:14
>>13
出来る出来ない別として、そういう実装はなるべく避けたほうがいい。

22:15
10/12/13 03:07:52 aRjyTaj/
>>16
>>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を入れて使っているのですが、
同じような妙な挙動をしている方って他にいらっしゃるのでしょうか。。?


23:15
10/12/13 03:08:40 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 プライベートメソッドを呼び出さず、
URLリンク(github.com)
こちらの 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メソッドが含まれていません。

よく分からないのですが、この挙動は正しいのでしょうか。。?
全く解決できる見込みがありません。
ご教示いただけると幸いです。


24:nobodyさん
10/12/13 04:20:54
i18nとかつかうときのマジックコメントって
どこに書くんでしょうか?


25:nobodyさん
10/12/15 02:06:31
>>15
そのサイトのmixiのリンク先のページが無くなってるんだが、mixiのAPIの仕様が変わっているなんてことはないの?

あとはお約束の
URLリンク(en.lmgtfy.com)

>>22-23
==が呼ばれていないのはよくわからないな
Railsならdevelopmentモードでファイルを編集しても再ロードされていないとかいう話ではないよな

それと動作見るなら、
Rails.logger.debug("hogehoge")
でログ取ればよいよ。loggerがdebugレベルを出力するときだけログが取られる。



26:nobodyさん
10/12/17 13:18:45 jG120pyf

Building Mini Google in Ruby
URLリンク(www.slideshare.net)


27:nobodyさん
10/12/18 02:46:03
>>13
Railsを動かすアプリケーションサーバーにもよると思うけどPassengerならできたよ
多分adsenseの広告張りたいんだよね?
PHPは別ファイルにしてpublic配下に置いて、それをViewからSSIで読み込んでやればおk
apacheでSSI関係の設定も必要
元の発想はこの辺の記事から Mongrelでも可能っぽい
URLリンク(yugui.jp)
URLリンク(yugui.jp)

28:nobodyさん
10/12/19 08:58:50
2007年の記事だけど、今でも通じるの?Rails1ぐらいだろこの頃は

29:nobodyさん
10/12/19 09:07:11
railsとphpを別ポートで動かしてphpからrails読み込めばいいんじゃね。

30:nobodyさん
10/12/19 13:15:14
同じ状況で、PHPコール用のヘルパーを書いたな
public配下のphp/ad.php みたいなファイルをWebAPIに見立ててアクセス、
戻りの広告HTMLを表示する、という風にした
結局広告って最終的には素のHTML+JSになるからそれを表示出来ればいい

31:nobodyさん
10/12/19 14:39:43
>>28
rails3 passenger3 apacheで動いたよ

32:nobodyさん
10/12/19 21:43:26
>>27より>>30の方が明らかにスマートだと思うけど
パフォーマンスが違うのかな?

33:nobodyさん
10/12/20 01:12:09
>>30
それってアドセンス

34:nobodyさん
10/12/20 01:13:38
途中で送信しちゃった
アドセンスだったらそのやりかたうまく行くのかな?

35:nobodyさん
10/12/20 20:00:11
RailsからPHP使うとか
うちの会社なら鼻っからNGだなぁ
気持ち悪すぎる

36:nobodyさん
10/12/20 21:28:03
検索実装が面倒だったから↓で済ませた。will_pagenateって配列にも使えるんだな

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

37:nobodyさん
10/12/20 21:35:01
いきなりよくわからんが、
最初の@postsに100万件データが入っていても耐えられんの?

38:nobodyさん
10/12/20 21:35:59
mysqlって日本語の全文検索できないよな確か

39:nobodyさん
10/12/20 21:40:18
「全文検索」ってLIKEで日本語が引っかからないってことじゃないだろうな

40:nobodyさん
10/12/20 21:47:25
>>37
12000件だけど余裕だった

41:nobodyさん
10/12/20 21:54:48
>>39
そうだけど何か?

42:nobodyさん
10/12/20 22:03:31
全検索はLIKE文とは違うから、同じ結果を求めるのは無理があるのではないか?

43:nobodyさん
10/12/20 23:48:46
>>41
いやなんでもない

44:nobodyさん
10/12/21 00:46:04
>>40
100万件と言ってるわけだが。
まあ個人作成で少数利用なら処理に1秒かかっても大丈夫だろうけど、
仕事でやられたら頭に血が上るレベルだぞ。

45:nobodyさん
10/12/21 01:06:16
おれならfind_by_paginate使う

46:nobodyさん
10/12/21 01:30:58
>>35
気持ちいいとか悪いの問題じゃないんだよ必要とされてるんだからエンジニアはそれに応えなきゃ

47:nobodyさん
10/12/21 02:01:07
普通のユーザはRailsだのPHPだのはどうでもよくて、お安く正しく動いてくれれば良い

エンジニア同士なら、システム設計に意見する方が適切ではないかい

48:nobodyさん
10/12/21 02:25:17
意見すればどうにかなるとでも?
上で例に上げられてるのは他社の用意した広告プラットフォームでしょ
エンジニアの志向する技術とビジネスで求められる現実は乖離するのが間たり前で、それに柔軟に対応するのもエンジニアの務めだと思う

49:nobodyさん
10/12/21 09:15:01
>>44
代替案も示さずに批判だけとかcgi.rbがいつまでも糞なままなのがruby界の陰湿さをよくあらわしていますよね

50:nobodyさん
10/12/21 09:59:57
ヒントも代替案も思いっきり示されてるわけだが
それに全く気づかないのは人間性の問題なんだろうな

51:nobodyさん
10/12/21 10:53:38
cgi.rbの悪口いってるやつってRuby関連スレでよく見るがおまえもその一人か。
偉そうなこと言う割にはちょっと考えられないような糞プログラムを晒してくれてるなw

52:nobodyさん
10/12/21 11:00:27
検索に使われるワードなんて決まってるんだからキャッシュしとけ

53:49
10/12/21 11:11:54
>>51
俺は「cgi.rbの悪口をいうやつが多い」ので「ruby界は陰湿」と言っているのだが。。。

54:nobodyさん
10/12/21 11:44:25
「cgi.rbがいつまでも糞なまま」は「cgi.rbの悪口」じゃないのかよ
自分で自分を陰湿だと言ってることに気づいてないとは

55:nobodyさん
10/12/21 15:15:03
批判・批評と悪口の区別が付かない人は議論に向かない

56:nobodyさん
10/12/21 17:04:13
>>36
これってメモリ食うってこと?

57:nobodyさん
10/12/21 17:46:09
i18nとかつかうときのマジックコメントって
どこに書くんでしょうか?


58:nobodyさん
10/12/21 18:43:40 irxjcebd
一般的な意味での i18n ?
i18n gem ?


59:nobodyさん
10/12/22 03:49:13
>>52
検索に使われるキーワードのlogを見たことありますか?
東京駅近くの病院
↑みたいに文章で検索する人とか結構多い
とにかくこっちが想定しないような検索語をどんどん送ってくるのが一般ユーザー

60:nobodyさん
10/12/22 05:09:25
gemのmysql2ってどうですか?速いんでしょうか?

61:nobodyさん
10/12/22 10:21:51
>>57
何に困っていてどうしたいのか書いたほうがいいかも

62:nobodyさん
10/12/22 10:23:56
>>59
検索キーワードを見ていると、皆さん様々な悩みを思い思いに検索欄に入力して検索しておられますね
うちの検索欄はお悩み相談室ではないのだが・・・


63:57
10/12/22 16:43:25
>>61
.html.erb内に日本語書いて、それが正しく表示されるようにしたり、
フォームからの入力で日本語を入力出来るようにしたいんですが、
どうすればいいのかよく分かりません…


64:nobodyさん
10/12/22 16:51:25
それi18nじゃないがな

RubyとRailsのバージョンによって対処法が違うから書かないと
DBの設定が違ってる可能性もあるから使ってるDBも書いた方がいい

65:nobodyさん
10/12/22 19:04:19
>フォームからの入力で日本語を入力出来るようにしたいんですが

ぱっと思ったのは、MySQLとかの文字コードがlatin1のままだったり、
プログラムではUTF8なのにHTML表示がSJISだったりとか

66:nobodyさん
10/12/24 14:37:49
>>63
原因がありすぎてそれだけだと絞れないな
UTF-8という前提で書くと

・.html.erbをUTF-8の文字コードで保存していない
・UTF-8で保存していると見せかけて、BOM付きやUTF-8ではないUNICODEになっている
・.html.erbの文字コードが指定されていない
・.html.erbの文字コードとhtmlのmeta指定やレスポンスヘッダーcharsetの指定がバラバラになっている
・RubyをUTF-8で動かしていない(対応策はRubyやRailsバージョンによりけり)

どれそれの文字コードが表示できないじゃなくて「日本語」って書いてるのが不安w

67:15
10/12/26 06:47:21 P+mR+WO/
>>16
>>19
レスありがとうございます。お礼遅れてすみません。
自分が色々勘違いしていたところもあったのですが、結局まだ解決していません。

URLリンク(eblog.drecom.jp)

URLリンク(eblog.drecom.jp)
に「OAuthのverifyが通らない」とありまして、
まさにこの状態だと思うのですが、分からず・・とりあえず後回しにして
他の部分の実装を進めています。

また別のことでご質問させていただきたいのですが、
ApplicationControllerの上の方で
paramsの値をみてif分で条件分岐させて
protect_from_forgeryを使うか使わないか振り分けたいのですが、
if params["v"] == "test"
protect_from_forgery
end
とすると params がundefinedとなってしまいました。

試しに
before_filter :custom_protect_from_forgery
def custom_protect_from_forgery
if params["v"] == "test"
protect_from_forgery
end
とすると、なぜかprotect_from_forgeryの行で undefined method before_filter
となってしまいました。

何か良い方法がありましたら教えていただけますと幸いです。

68:15
10/12/26 07:13:23 P+mR+WO/
よく考えたらparamsでprotect_from_forgeryを切り替えるのは駄目でした。
上記の通りoauth周りがまだ解決できてませんが、oauth-pluginのoauth_required
を見て、trueかfalseかで処理を分ける様なイメージです。
こういった処理は可能なのでしょうか。。

69:nobodyさん
10/12/26 09:17:54
RailsではなくまずはRubyの勉強をすべき

しかもソースを見てレスくれてんのに質問投げっぱなしで放置して、
分からなくなったときだけ再登場。
そんなやつが教えてもらえるわけないだろ。

70:15
10/12/26 13:31:14 P+mR+WO/
すみません>>25へのお礼が漏れてました。
ありがとうございました。
で、25のurlで解決出来そうだと思ったので
解決してからお礼しようと思ってたのですが、結局わからなかったもので..
すみません。

71:nobodyさん
10/12/26 14:49:33
インスタンス○○とクラス○○の違いをきちんと意識しないと。
とりあえず動かすだけなら↓でいけると思うが。

self.class.protect_from_forgery

72:nobodyさん
10/12/26 18:24:37
それだとクラスメソッドで書き換えに行っちゃうから、他のアクセスがきた時、タイミングによってはアウト

73:nobodyさん
10/12/26 19:45:23 j7lQkci8
試してないけど、protect_from_forgery(options)は
before_filter :verify_authenticity_token, option
とほぼ同義なので、
protect_from_forgery :if => lambda {|controller| カスタム条件 }
みたいなので出来そうな気がする。あるいは
def protect_against_forgery?
カスタム条件 and super
end
でもいいような気がする。


74:nobodyさん
10/12/26 19:50:26
rails3の本はいつ出るんだ?

75:nobodyさん
10/12/26 20:01:46 j7lQkci8
URLリンク(www.pragprog.com)


76:nobodyさん
10/12/26 23:49:38
>>75
サンクス!英語版が来月ってことは日本語版は相当先だろうなぁ

77:nobodyさん
10/12/27 00:11:08
アジャイル本は翻訳に半年ぐらいかかりそう

78:nobodyさん
10/12/27 00:50:08
英語の勉強も兼ねて買ってみるかな…

79:nobodyさん
10/12/27 08:27:00
rails2と3は中身は相当変わったけど、使う分にはそれほど変わってないから
第3版で十分だと聞いているが。


80:nobodyさん
10/12/27 09:10:44
>>79
前スレで紹介されていたWEB+DEV PRESS VOL 58よかったぞ
全然初心者向けじゃねえし、ほとんど移行ガイドじゃねーかw
第3版とこれを合わせてみるといいと思う


635 名前:nobodyさん[sage] 投稿日:2010/11/07(日) 23:35:34 ID:???
>>625
WEB+DB PRESS 58のRails 3特集がいいぞ
Rails 2からの移行者以外誰得な記事だと思ったが

WEB+DB PRESS Vol.58: 編, WEB+DB PRESS編集部: 本
URLリンク(www.amazon.co.jp)


WEB+DB PRESS vol.58 の Rails 3 / Ruby1.9.2 記事が素晴らしすぎる件 - まちゅダイアリー(2010-08-21)
URLリンク(www.machu.jp)




81:nobodyさん
10/12/27 11:18:59
マッチポンプ

82:79
10/12/27 11:45:02
おれちゃうわ

83:nobodyさん
10/12/27 17:48:17 jyXQOLKO
Rails3は

URLリンク(railstutorial.org)

でいいと思う
無料だし、丁寧だし、必要なら製本・PDF・解説ビデオ買えるし

84:nobodyさん
10/12/27 19:59:32
それいいけどあくまでチュートリアルだし、
実際にアプリ作ろうとしたらその内容じゃきついよ。
アプリのモデルも二つしかないし、完全な入門用だと思う。

85:nobodyさん
10/12/27 20:22:54
たしかにURLはbeginningだな

86:nobodyさん
10/12/28 00:24:51
すいません質問させてください。

@entries = Entry.find(...)
このようにfind系メソッドで取得した@entriesをviewで処理する時に、Entryモデルのインスタンス変数以外の情報で出力を分けたい場合があります。
これを実現するためにコントローラ側で@entriesをループで回して各要素に情報を加えたいのですが、上手いやり方がわかりません。

理想的には以下のようにして、new_varという値を付加したいのですが、これは勿論エラーになります。
【コントローラ側】
@entries.each do |entry|
entries.new_var = ごにょごにょ
end
【ビュー側】
<% entries.each do |entry| %>
<% if entry.new_var == 1 %>ごにょごにょ<% else %>ごにょごにょ<% end %>
<% end %>

仕方なく、自分なりに考えた末、こんな感じになりましたが、冗長な気がします。
【コントローラ側】
@entries.map! do |entry|
{:org => entry, :new_var => ごにょごにょ}
end
【ビュー側】
<% entries.each do |entry| %>
<% if entry[:new_var] == 1 %>ごにょごにょ<% else %>ごにょごにょ<% end %>
<% end %>

実行時にインスタンス変数を追加すれば前者でいけるのかもしれませんが、これはやはりやり過ぎでしょうか?
もっとスマートな方法があったら教えてください。

87:nobodyさん
10/12/28 00:52:09
>>86
試してないけど、モデルEntryにアクセサnew_varを定義してやれば通るんじゃないの?
前者のコントローラ側コードは、
entry.new_var = ごにょごにょ
の間違いってオチ?


88:nobodyさん
10/12/28 00:55:40
>>83
rvmやgitとgithubの使い方、TDDしながらの開発、herokuへのデプロイ

初心者向けの教材としていいんじゃないかと思うが、逆にすぐにやりたいことがある初心者には余計なことが多いなw




89:86
10/12/28 01:36:16
>>87
ありがとうございます。
前者のコードはご指摘通りentry.new_varの間違いでした。

モデルにアクセサを定義してみたら動きました。ありがとうございます。
ただ、追加する情報というのがviewによって違うため、そのたびにアクセサを定義するというのが少し現実的では無いのです。

90:nobodyさん
10/12/28 07:38:41 qNgO67wu
entry["attr"] = value
これで勝つる。

91:86
10/12/28 10:30:29
>>90
ありがとうございます!出来ました。

ActiveRecord::Base.instance_methods(false).grep(/\[\]/)
=> ["[]=", "[]"]

これは今回のケースのような為の便宜メソッドなのでしょうか?
あるいは他に目的があるのかな。

92:nobodyさん
10/12/28 10:41:16
posts.id == posts['id'] #=> true

もともとはテーブルのデータを呼び出すのに使う
だから列名と被ると上書きされるので注意

93:nobodyさん
10/12/28 10:54:35
> これは今回のケースのような為の便宜メソッドなのでしょうか?

そうみたい。

94:nobodyさん
10/12/28 12:48:06
ふーむなるほど、勉強になりました。
少し

95:86
10/12/28 12:48:49
↑途中で送ってしまいました。すいません。
皆様ありがとうございました。

96:69
10/12/28 13:59:50 sIDdR5ML
>>71 >>72 >>73
レスありがとうございます。
protect_from_forgery :if => lambda {|controller| カスタム条件 }
結局これでうまく行きました。ありがとうございます。
クラス○○とインスタンス○○の違いはある程度は分かっていると思うのですが、
ActionControllerに用意されている色々なメソッドがどのタイプのメソッドなのか、把握は出来ていませんでした・・
ともあれ、ありがとうございました。

OAuthの方の問題が解決しないのは変わらず悩んでます・・
もし分かる方いらっしゃいましたらご教示いただけると幸いです。
質問ばかりですみません。

97:nobodyさん
10/12/29 16:12:12 j8vwwBYJ
cache_pages 使うとGETパラメタが使えないってどうにかなんないの?
mod_cache でも使うの??

98:nobodyさん
10/12/30 22:08:23
>>97
キャッシュされててコントローラも通らないんだからパラメタ使いようがないよね。
動的にしたい部分があればAjaxで後から追加。

99:nobodyさん
10/12/30 23:59:25
Ajaxにしてもキャッシュ効かないだろ
mod_cache使っとけ

100:nobodyさん
10/12/31 03:04:32
route.rbの設定でクエリストリングなくすのが本筋だろ

101:97
10/12/31 09:37:44
ページングしたらキモいじゃん

posts/1/page #index 1ページ目
posts/1/show #id=1に対するshow


102:nobodyさん
10/12/31 12:06:04
最近datamapperなるものを知ったのですが、これってactiverecordの代替になるものなんでしょうか?
activerecordとどういうところが主に違うんでしょう。
まだ全然触ってないのですが概要だけでもざ~っと分かったらいいなぁと・・


103:nobodyさん
11/01/01 04:06:45
>>102
datamapper使われていたMerbがRailsに統合されたので(ry

104:nobodyさん
11/01/01 21:14:41
>>102
ARは基本RDB用のみ、DMはもっと抽象化されててBigTableやNoSQLもアダプタがあればいける

あとDMはモデルでスキーマ定義必須だから、そこ見ればどんなDBかすぐわかる
ARはそこらへんわかりづらい

ARは3.0でどこまでかわってるかはよく知らない

105:nobodyさん
11/01/01 21:32:08
>>103
新年早々乙

ちょっと上の方でRails3の本の話題になっていたけれども

はじめてのRuby on Rails3(I・O BOOKS)

という本はどうなんでしょう?

去年の11月出版みたい

106:nobodyさん
11/01/01 22:10:05
rubyどころか、初めてコンピュータ触る人用。

107:102
11/01/02 03:46:53
>>103-104
なるほど、ありがとうございます。
これからActiveRecordに変わってDataMapperが台頭していく流れなんですかねぇ。
NoSQLDB自体使いどころを選ぶみたいですが、RDBも使えるのなら両方使えてツブシが利く方がよさげですが・・

108:nobodyさん
11/01/02 04:15:28
AR3はNoSQL系も想定してるような記事を見たけれど詳しいことは、有識者頼む

109:nobodyさん
11/01/02 10:23:53
>>106
なるほど、楽天BOOKSで買おうとしてたけど
止めておいてよかった
サンクス


110:nobodyさん
11/01/02 16:13:37
Rails的にはDataMapperというよりArelが主流っぽいんじゃない?
正直、どれも良くできてるんで何使っても変わんない気がするんだけど

111:nobodyさん
11/01/02 16:34:18
SQL直接書くのが一番早い

112:nobodyさん
11/01/02 23:48:10
それはメンテナンス性が低いから止めてくれ。

113:nobodyさん
11/01/03 17:16:11
少し込み入ったシステムの開発に携わったら
半分以上がfind_by_sqlになったぞ

ルーティングを無闇に定義して逆にごちゃごちゃしてくるし
規約でどうこうやるのも限界を感じるわ

114:nobodyさん
11/01/03 21:40:36
"少し込み入った"がどの程度なのかわからんけれど
テーブル設計とARの使い方が間違ってる部分が多いんじゃないかと

とはいえ、find_by_sqlが必要になる場面ってちらほらあるんだよな..

115:nobodyさん
11/01/03 23:26:51
分析して結果を出す系の部分は、全部 find_by_sqlになることが多いな
でもまぁそういう、SQL考えるだけで数時間かかるようなのはSQLにまかせて
定型的なモンだけARでやって楽しようぜ!ってのがARの思想だと思う

116:nobodyさん
11/01/04 00:53:01
思考に数時間要するSQL文を見てみたいのだが。

117:nobodyさん
11/01/04 08:47:58
足跡システムなんかはinsert直発行

118:nobodyさん
11/01/04 10:54:58
SQLを直接書いてる人ってなんか全体的にしょぼくないか?

119:nobodyさん
11/01/04 13:24:48
それはお前がそういう環境にいるだけ

120:nobodyさん
11/01/04 14:03:16
全体的にしょぼいという意味がわからない
それがなぜSQLを直接書く人と結びつくのかも不明

121:nobodyさん
11/01/04 14:06:54
よほどのSQLエキスパートじゃないかぎり、今時ORM使わないやつはしょぼい、てことか?

122:nobodyさん
11/01/04 14:47:07
今のARじゃ抽象化が不十分で、そのまま使うとSQL文全体を書くかはともかく
where句とかのレベルのSQLは書かざるを得ない事が多い気がする。
自分の場合は、それも嫌だったからARを拡張して、全く書かずに済むようにしてるけど、
まだそれ程複雑な物作ってないから、書かずに済んでるのかな。


123:nobodyさん
11/01/04 14:56:38
以前、find_by_sqlを多用していることを書き込んだら
PGやめろとか、素質無しとか言われたことがある
もちろんスルーしてやったぜ

124:nobodyさん
11/01/04 15:23:51
多くの場合 [named_]scope を使えばきれいで保守しやすい

125:nobodyさん
11/01/04 21:49:18
AR拡張したところで無理なモンは無理だろ。
自分の経験上、SNSサイトですら少し規模が大きくなると細分化されたデータをたくさん所持するようになって
関連の無いテーブルから一度にデータを取ってくることが日常茶飯事になる。
これはテーブルの設計どうこうで済む問題じゃない。
関連テーブルを辿れるレベルではどうにでもなるが。

126:nobodyさん
11/01/04 22:17:44
× 関連の無いテーブルから
○ 別のDBサーバから


127:nobodyさん
11/01/04 22:57:36
SNSサイトですらって、SNSサイトが一番きついくらいだろ。
データが相当あったって業務系なんかの場合は、
テーブルをスライスしてDBを分散させる必要なんてほとんどない。
一つ一つの負荷は大したことなくても、アクセス数がハンパないってのは非常につらい。

128:nobodyさん
11/01/05 00:31:53
レガシーシステムのDBのぞきに行くのもなかなか
長年に渡って蓄積されたバッドノウハウの塊のようなやつとか

129:nobodyさん
11/01/05 01:22:06
データ量が多かろうがSNSだろうが、別DB見に行くなんて、
”アプリケーションによる”だけじゃないか

130:nobodyさん
11/01/05 05:13:54
最適解なんて千差万別
その辺りを考慮しないでSQL直書きしてるのを見かけたら脊髄反射的に批判するのは究極の短絡的思考だと思います

131:122
11/01/05 06:58:47
>>125
もちろん、関連テーブルを辿れるレベルの話です。
素のARでは、それでも直書きせざるを得ない事があるので、
それを回避するために拡張したというだけです。


132:nobodyさん
11/01/05 07:45:31
クックパッド様やツイッター様だって
普通にAR使ってるんだよね?

高負荷サイトで普通に使えるなら問題ない。

133:nobodyさん
11/01/05 09:40:59
SQLを直で書いてもARを使ってるわけだが

134:nobodyさん
11/01/05 22:35:48
SNSですらってw
大変な部類じゃないのか?

135:nobodyさん
11/01/06 01:32:08
大変の定義にもよるが、SNSは基本的にパフォーマンスに気をつければいいだけだろ。
数十行のSQLを書くことも稀だろう。

136:nobodyさん
11/01/08 03:24:26 Oy6jKTHP
gem install disqus
URLリンク(github.com)
URLリンク(disqus.rubyforge.org)


URLリンク(michitoshi.blogspot.com)


DISQUS CommentsのTwitterコメント投稿・表示欄を掲載する手順 Kawanet Tech Blog/ウェブリブログ
URLリンク(kawa.at.webry.info)

137:nobodyさん
11/01/08 06:13:10
おばあちゃん
おばあちゃん
ありがとう
おばあちゃん
ほんまに
ありがとう

138:nobodyさん
11/01/08 22:38:35
みんなcakeなんてやめてrailsにしようよと発言したら
仲間はずれにされました;;

139:nobodyさん
11/01/08 22:45:47
その人達がなんでRailsでなくCakePHPを支持してるのか聞いてみて欲しい
別にRails > CakePHPとか思ってるわけじゃなくて、純粋にCakePHPを使うメリットが知りたい

140:nobodyさん
11/01/09 00:36:37
そんなのPHPで動くからに決まってんじゃん
聞くまでもない

141:nobodyさん
11/01/09 02:10:48
パフォーマンスも圧倒的にcakeが上だしなぁ

142:nobodyさん
11/01/09 03:25:14
PHPerには向上心が無いから何言っても無駄

143:nobodyさん
11/01/09 05:26:39 oSWZOkDK
Rubyはエンタープライズの基盤になれるか:ITpro
URLリンク(itpro.nikkeibp.co.jp)
開発に取りかかって約2カ月で完成した。
「VBscriptならこの倍,PHPでも1.5倍はかかっていたのではないか」(宮島氏)。
コード量も10分の1になった。
VBsciptではコードを再利用する際にコピーしていたのに対し,
Rubyではクラス継承により集約でき,変更の際の見通しもよくなった。


144:nobodyさん
11/01/09 05:34:12 oSWZOkDK

インタビュー:[楽天]Ruby活用事例とROMA,Fairy
URLリンク(gihyo.jp)
今では日に200万とか,多いものだと600万くらいのトランザクションが発生するシステムで使っていますが,
すべて問題なく稼動しています。


インタビュー:[楽天]Ruby活用事例とROMA,Fairy
URLリンク(gihyo.jp)
パフォーマンスも当然ベンチマークで要件をクリアできていることを確認していましたし,
実稼動後も特に問題になったことはないです。
興味深い点としては,RailsとCakePHPを比べたところ,高負荷時にはRails のほうが大幅に応答性能が高いという結果が出たことですね。
これは200リクエスト/秒くらいからPHPの応答性能が急激に下がるのが原因です。
Rubyはそれほど大きくはパフォーマンスが落ちないんです。

145:nobodyさん
11/01/09 08:56:50
PHPユーザの向上心の無さは異常

146:nobodyさん
11/01/09 10:39:02
> VBsciptではコードを再利用する際にコピーしていた

それ再利用と言うのか?
コピーして新しく作成しちゃってるじゃん

147:nobodyさん
11/01/09 11:02:47 hPSqOLvQ
つまり毎回forkしてるから効率悪いということ

148:nobodyさん
11/01/09 11:04:24
unicorn使えば毎回forkしてないってことですか?
さすがrails様は次元が違いますね^^

149:nobodyさん
11/01/09 12:04:15
なに言ってるのかわからんな

150:nobodyさん
11/01/09 13:09:00
railsが勝手に機械的にコピペしてくれてるだけなんで
ただの末端ユーザーにとってはVBと違いはほとんど無い

151:nobodyさん
11/01/09 13:28:56
PHP房とrails使いの差は、rails使いは試行錯誤の結果「PHPでは高負サイトは無理ではないか」という
試行錯誤を繰り返すタイプの「生粋のエンジニア」なのか「似非Webエンジニア」なのかという差ということですね。

「PHPだけできます」という人間は吐いて捨てるほどいるけど、rails使いのように、appサーバの負荷や

フレームワークの負荷に敏感な「生粋のエンジニア」は少ないということですね」

これらの差は、非エンジニア職である経営層は一生気づくことのない差なんでしょうね。
その差に気づくことが出来ない経営者が仕切っている会社は
一生、web業界において、勝ち組になることは出来ないでしょう。

152:nobodyさん
11/01/09 16:17:49
糞経営者は目に見える部分しか見ないという点には同意

153:nobodyさん
11/01/09 18:02:13
>>151


>>152
それは同意だな

154:nobodyさん
11/01/09 20:35:35
PHPの方が圧倒的に需要が多いから
Rails厨が何を言っても憐れに見える。

Cakeの誕生でわざわざRailsの開発環境整える意味も皆無になったわけで
さっさと諦めればいいのに。

155:nobodyさん
11/01/09 20:54:44
>>142
向上心なかったらCakeなんか使わねーだろw

156:nobodyさん
11/01/09 22:35:08
array() いっぱい書きたくないわ

157:nobodyさん
11/01/10 01:10:46
3.1っていつ頃出るんでしょうか

158:nobodyさん
11/01/10 04:09:07 SqSUf4Y5
質問させていただきます。
Mac 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)が入っています。
いろいろ調べたのですがわからないので誰か教えてください。
よろしくお願いいたします。

159:nobodyさん
11/01/10 09:19:57 KNJg+u2Y
スレリンク(hosting板)l50

スレリンク(hosting板)l50

スレリンク(hosting板)l50


URLリンク(daybook.biz)


URLリンク(www.webhostingtalk.com)

160:nobodyさん
11/01/10 09:30:12 Us1Ofr5V
DYLD_FALLBACK_LIBRARY_PATH=/usr/local/lib
export DYLD_FALLBACK_LIBRARY_PATH
とやったらどうなる?


161:158
11/01/10 22:27:20 SqSUf4Y5
>160
返信遅くなってすみません。

なにも出ません。
そしてrake db:migrateの結果も変わりません><

162:nobodyさん
11/01/10 23:19:28
32bitのドライバが入ってるんじゃね?
一回gem uninstall mysqlしてからやり直してみては?


163:nobodyさん
11/01/10 23:31:26
gem install mysql2
じゃなかったっけ?

164:158
11/01/11 00:25:44 w92gJgj0
>163
gem install mysql2 は駄目でした

>162
これから64bitいれ直してみます!

165:158
11/01/11 00:33:28 w92gJgj0
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
で入れたのですがだめでした。。。
もうかれこれ4日くらい同じところでつまずいています。泣

166:nobodyさん
11/01/11 00:47:17
ていうか、10.6になってからmysqlを入れ直したかどうかとか、その辺も分からないとどうしようもない。

167:158
11/01/11 00:57:51 w92gJgj0
情報が不足してしまってすみません。

12月にmacを買いまして最初から10.6.6です。
それでmysqlを入れました。

168:nobodyさん
11/01/11 07:49:17
だからそのmysqlはどうやって入れたのよ。


169:nobodyさん
11/01/11 11:12:56
references使ったらエラーが起こるんだけどどうすればいいの?

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


170:nobodyさん
11/01/11 11:52:39
>>167
rubyもmysql5も全部portで入れた方がいいと思うよ

171:nobodyさん
11/01/11 12:07:49 KMpfNobV
>>169
どんなエラーよ


172:nobodyさん
11/01/11 13:34:18
post_idとか書かないといけないのでは。
referencesのとこはpostでも

173:nobodyさん
11/01/11 18:35:17
しかしmigrationって、こうしてみると筋が悪いな・・・

174:nobodyさん
11/01/11 23:21:57
rails3,ryby1.9.2で内部的にはUTF-8を使っています。
GETパラメータでsjisの文字列を渡すと
params[:key].blank?
でArgument Error となってしまいます。
params[:key].encode("utf-8").blank?
params[:key].force_encofing(“utf-8“).blank?
は試したのですが結果は変わりません。
どうすればよいのでしょう?


175:nobodyさん
11/01/11 23:32:17
そのエラーを貼り付けましょう

176:nobodyさん
11/01/11 23:47:34 EbNzEbCq
ArgumentErrorとは言っているから、あとはどこで出たか、だな。
できればエラーを引き起こしたArgumentの値も欲しいが。


177:174
11/01/11 23:52:59
>>175
すみません
エラーメッセージは以下です。

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"

を記述し、
URLリンク(127.0.0.1:3000)
で再現します。




178:nobodyさん
11/01/12 01:01:58
内部的にsjisを使う
または表もutf-8にする

179:nobodyさん
11/01/12 08:55:08 PVfPMtkv
force_encodingはバイト列はいじらない。
間違いなくUTF-8が入っているけどアプリにはそれがわからない
という場合に使う。
とりあえずparams[:key] と params[:key].encoding を出力してみれば?



180:nobodyさん
11/01/12 10:58:19 Jb3zJbvV
RailsはUTF-8を受け取る前提でつくられたフレームワークなせいか、
paramsを組み立てる途中で強制的にUTF-8エンコーディング情報を
付けてしまう(ActionDispatch::Http::Parameters)。

とりあえずは
key = params[:key].encode('UTF-8', 'Shift_JIS')
みたいにエンコードし直すのが手っ取り早い。


181:nobodyさん
11/01/12 15:26:13
railsで特定のgemやpluginのmethodをoverrideしたいときはどうすれば良いでしょうか?
initializers配下で overrideの定義を書いたファイルをrequireするやり方だと、上手くいきません。
(initializers配下のファイルが読み込まれたあと、pluginのファイルが読み込まれるため?)

182:nobodyさん
11/01/12 16:21:53
application.rbのconfig.after_initializeブロックの中でrequireすれば?

183:158
11/01/12 17:18:42 gnHL4Y+W
>168
URLリンク(www-jp.mysql.com)のサイトから
MySQL Community Server 5.5.8のMac OS X ver. 10.6 (x86, 64-bit), DMG Archiveをダウンロードしました。

>170
portで入れた方がいいんですか。
アドバイスありがとうございます。

184:nobodyさん
11/01/12 17:29:17
>>183
あとはrubyのバージョンとrubyをどうやって入れたか。
同じような環境(mysqlはバイナリインストール、rubyはソースからインストール)だけど、全く問題出てないので。


185:158
11/01/12 18:35:35 gnHL4Y+W
>183
ruby1はmacにもともと入ってやつでバージョンは1.8.7です。

186:nobodyさん
11/01/12 18:54:35 Jb3zJbvV
(OS付属の)ユニバーサルバイナリのRubyと
そうでないMysqlのライブラリって一緒に使えるのかな。


187:158
11/01/12 18:57:44 gnHL4Y+W
まさかのそういう問題なのかorz
一から入れ直してみようと思います。
みなさまいろいろ親切にありがとうございました!

188:nobodyさん
11/01/12 22:10:57
>>182
返答ありがとうございます。
しかし、after_initializeの中でrequireしてもダメのようです。
困った。。。

URLリンク(stackoverflow.com)
ここにあるAnswerの subclass を作るやり方のようにやりたいのですが。。。

189:nobodyさん
11/01/12 22:53:11 PVfPMtkv
オーバーライドを行うファイルの先頭で、置き換えたい定義の入っている
ファイルをrequireしてしまってもダメ?


190:nobodyさん
11/01/13 11:04:43
>>189
いけました! ありがとうございます!!

191:nobodyさん
11/01/13 12:58:25
>>178-180
回答ありがとうございました。
結局一日調べて
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)
を追加したものを用意することで対応できました。

192:nobodyさん
11/01/14 13:18:07 BgLvsnps
ruby 1.9.2p0 (2010-08-18) [i386-mingw32]、Rails 2.3.8を使ってます。
scaffoldを使ってモデルを作成した際、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 %>

このような場合、どのような処理を行えばこのエラーは取れますか?


193:nobodyさん
11/01/14 13:55:11
2.3系は1.9系の対応が不完全とアナウンスされていたような
きりないから、可能ならRails3.0.3にするかRuby1.8.7に変更した方がいいよ

194:nobodyさん
11/01/14 14:03:41
そのviewファイルはutf8になってるの?
あと、htmlの指定でもutf8になってるんだろうか。
sjisが入力されてるような気がする

195:nobodyさん
11/01/14 14:13:12 BgLvsnps
>>193
なるほど…。
やっぱりそこを変えたほうがいいのですね。

>>194
両方utf8になっていると思われます。

196:nobodyさん
11/01/14 22:23:10
post と tag が多対多のとき group が邪魔です
Post.joins(:tags).where(['tags.name like ?', params[:q]]).group('post.id')

197:nobodyさん
11/01/14 22:25:58
で?

198:nobodyさん
11/01/15 00:23:08
しかもlikeとかw

199:nobodyさん
11/01/15 08:49:55
たぶんこういうことだろう
post = Post.new(:title => 'あい')
post.tags.build(:name => '純愛')
post.tags.build(:name => '恋愛')
post.save

Post.joins(:tags).where(['tags.name like ?', '%愛%']) #=> 「あい」が2つ出る

200:192
11/01/17 00:57:31 eCmWyBLt
192で2.3系は1.9系の対応が不完全とアナウンスされていたから
Rails3.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が表示されます。

原因がわからず困ってます。誰か知恵をください。お願いします。


201:nobodyさん
11/01/17 01:10:44
ちなみに3系では <%=h の「h」はいらない
デフォルトでエスケープされる

mysqlのライブラリがおかしいとかじゃないのか?
ちゃんとmysql2使ってる?

202:192
11/01/17 03:47:43 eCmWyBLt
>>201
<%=h の「h」いらないんですね!自分何も知らなさすぎるorz

mysql2使ってます!

203:nobodyさん
11/01/17 23:38:18
windowsについての質問って今までほとんど解決してないんだよなあ
ここにいる人のほとんどが使ってないだろうから
というわけで俺も力になれません

204:nobodyさん
11/01/17 23:48:34
普通に使ってるが。
mysql2はdevkitが必要だと思うが入れたのか?
前にも書いたし勝手に解決してないことにするなよ。

205:nobodyさん
11/01/18 19:11:55
AR で human sort って出来ますか?
データに関してはRDBに丸投げですか?

206:nobodyさん
11/01/20 01:29:44
RoRはぶっちゃけもう終わったと思います。

207:nobodyさん
11/01/20 02:19:35
始まってもいなかった

208:nobodyさん
11/01/20 17:05:05
PHPフレームワークを使う → やっぱり優秀ではなかった → RoRを使う → やっぱりダメだった

→ Tomcat+javaにしてみた → これが正解だと思った

209:nobodyさん
11/01/20 17:16:00 SSKhJITE
JavaからRubyへ ―マネージャのための実践移行ガイド
URLリンク(www.amazon.co.jp)



210:nobodyさん
11/01/20 17:16:13
Tomcatはフレームワークではなく、ソフトウェアの名前。
これに相当するのはRailsで言えばPassenger。

多少でも分かっていれば、こんなバカな間違いはしない。
またいつも荒らしてる勉強会の出席者?

211:nobodyさん
11/01/20 17:30:50
ひょっとこしてアスペ?

212:nobodyさん
11/01/20 17:57:49
そういえばぽろっとバレたやつがいたな

213:nobodyさん
11/01/21 04:07:57
最近のJavaのフレームワークってどんな感じになってるの?

214:nobodyさん
11/01/21 07:36:26
ここはrailsスレだよ、あんぽんたん

215:nobodyさん
11/01/21 08:33:12
JRuby on Rails

216:nobodyさん
11/01/21 12:46:05
それが次の勉強会のテーマ?

217:nobodyさん
11/01/22 03:04:07 a6Nv7f5X
URLリンク(status.heroku.com.zurukko.jp)

218:nobodyさん
11/01/23 12:04:05
ここはSQLチューングは上級者テクニックだと思ってる
低脳ばかりだからしょうがないよ^^

たとえばMySQLならexplainで実行計画を確認するのは
初心者が一番初めに覚えるべき基本だろ。

基本をはずしたヤツが開発したWebアプリはサイトがヒットした瞬間、
「トップページも表示されません」「今日は売り上げがゼロでした」という
間抜けなことになる(笑

こんなこと言っても、ここの連中には馬の耳に念仏だろうけどね(笑
まぁ 生まれつき低脳だから仕方ない^^

なんていうか、向上心が無い。知識が狭くて浅いが、本人には自覚が無いのでたちが悪い。

219:nobodyさん
11/01/23 12:54:43
いきなりどうした
ママに怒られたか

220:nobodyさん
11/01/23 20:39:24
どんな高級言語やフレームワークを使おうとも、その裏でどういうロジックで動いているかを
考えるのは当たり前のこと
Rails で間抜けな SQL を発行している人間は Java を使っても間抜けなコーディングになるだけ

221:nobodyさん
11/01/23 21:03:33
SQL で間抜けな filesort を発行している人間は COBL を使っても間抜けなコーディングになるだけ

222:nobodyさん
11/01/24 00:32:29
create_table :hoges do |t|
t.text :data
end

class Hoge < ActiveRecord::Base
def hoge
puts "*A* data = #{data.inspect}"
data = "fuga" if false
puts "*B* data = #{data.inspect}"
end
end

Hoge.create!(:data => "hoge")

で Hoge.first.hoge すると
*A* data = "hoge"
*B* data = nil
となるのは、なぜ? 両方 "hoge" になるべきだと思うんだけど。
Rails 3.0.3 + Ruby 1.9.0p0 でも Rails 2.3.5 + Ruby 1.8.7 でも同様。


223:nobodyさん
11/01/24 00:57:19
君が同名のローカル変数を作ってしまったからだ
Rails関係ないから初心者スレに行くといい

224:nobodyさん
11/01/24 04:21:21
あう、if false な状況でもローカル変数が作られるとはまったく想像もしてなかった。


225:nobodyさん
11/01/24 08:21:35
代入メソッドはself使えってMatzがいつも言ってるだろ

226:nobodyさん
11/01/24 16:22:48
require 'rubygems'
require 'active_support/all'
module M
def self.included(base)
base.class_eval do
class_inheritable_accessor :a
self.a = 1
end
end
end
p Class.new.send(:include, M).new.a # => 1
p Class.new{include M}.new.a # => nil ← !?

227:nobodyさん
11/01/24 16:58:51

  初 心 者 ス レ に い け


228:nobodyさん
11/01/24 17:10:48
p Class.new.instance_eval{include M}.new.a # => 1

229:nobodyさん
11/01/24 17:19:15
>>226
1.9 だと 1 になるな

230:nobodyさん
11/01/25 15:35:25
Memcachedベースのsesson_store を利用している場合に
session_id から session を復元する方法はありませんか?
(Rails3+Dalli です)

ActiveRecordベースの場合、以下のようにして復元できたのですが。。。
session = ActiveRecord::SessionStore::Session.find_by_session_id(session_id)

231:nobodyさん
11/01/25 17:12:30 yu47GaxV
>>230

うちはまだ Dali でも Rails3 でもないけど、cache をストアに使っている
MemCache クラスのインスタンスだとすれば、cache["session:#{session_id}"]
で取れてる。
memcache上のキー自体は #{namespace}:session:#{session_id} になっている。


232:230
11/01/25 20:00:15
>>231
返答ありがとうございます。
以下のやり方でいけました。

session = Dalli::Client.new('localhost:11211').get("rack:session:#{session_id]}")

デシリアライズまで透過的にやってくれるのはありがたいのですが、
memcacheのクライアントをリクエストのたびに毎回生成してしまうやり方なので、
負荷的によろしくなさそうなのが何とも。何か良い方法はないものかな。

Rails.cache.fetch(session_id) とかで取れれば、楽なんですがねぇ。

233:nobodyさん
11/01/25 20:44:25 F3Uu324/
ActionController::Base.session_options[:cache] あたりに
入ってなかった?


234:230
11/01/25 22:13:27
2.xまでは

CACHE = MemCache.new memcache_options
CACHE.servers = 'localhost:11211'
ActionController::Base.session_options[:expires] = 1800
ActionController::Base.session_options[:cache] = CACHE

という感じで、memcacheクライアントの実態が入っていたようです。
3.xからは、ActionController::Base.session_options が request.session_optionsに移動して
:cache もなくなってしまった感じっぽいです(Rails.cache?)。


235:nobodyさん
11/01/27 02:20:28 8vsS5446
URLリンク(b.hatena.ne.jp)
【ネット/料理】「年内にクックパッド抜く」 楽天レシピ、急成長
スレリンク(wildplus板)

236:akiyan
11/01/28 23:35:53
cakePHPにできないことは無いし

237:nobodyさん
11/01/29 02:50:04 ioBbPtI8
結局クックパッドは楽天レシピに抜かれる弱肉強食WEB - invizi
URLリンク(invizi.net)

[クックパッド][cookpad][ruby][rails][楽天]

238:nobodyさん
11/01/29 02:51:19 ioBbPtI8
メディアの存続にとって必要なのは「金」か「カルチャー」か - invizi
URLリンク(invizi.net)

239:nobodyさん
11/01/29 13:25:51
RailsでMySQLを使っているときのトランザクションについて教えてください。

Book.transaction do
処理1
処理2
end

このようなコードを書いた場合、
処理1と処理2がいずれも実行されるか、いずれも実行されないか
を保障するというのは理解できるのですが、
処理1と処理2の間に別プロセスがBookテーブルに変更を加えてしまうことはあり得ますか?

具体的には、Bookテーブルにcountというカラムがありまして
この本を保持する人の人数を保持しています。
ユーザーからのあるアクションによって、複数のbookのcountを更新する必要があるのですが、
Aさんが更新中にBさんが更新してしまうと整合性が取れなくなってしまう問題に当たっています。

この更新処理を上のコードのトランザクションで囲めば解決されるのでしょうか?

240:nobodyさん
11/01/29 13:35:21
質問させてください。携帯サイトの開発をしています
rails3+jpmobile環境なのですが、jpmobileのconfig.jpmobile.mobile_filter をオンにした状態化で
swfファイルを send_file or send_data すると jpmobile のフィルタの影響で不正な swf ファイルが送信されてしまいます
なんとか、mobile_filter をオンにしつつ、正常な swf ファイルを送信する方法はないでしょうか?


241:nobodyさん
11/01/29 14:10:00
railsの設定ではなくて、MySQLのトランザクションレベルによる。

URLリンク(dev.mysql.com)

InnoDB使ってるだろうから、デフォルトの REPEATABLE READ だと思われる。

結論からいうと、Bookテーブルは別のプロセスから変更を受けうる。
ただし、Bookテーブル内のロックされた行は
別プロセスから変更を受けないことが保証される。
テーブルレベルのロックと行レベルのロックの違いを汁。

Aさんが行1,2を更新している間は、Bさんは行1,2のコミットが終わるまでは、
UPDATEやDELETEはもちろん、SELECT文での読み取りも不可能になる。
ただし、Aさんがそのトランザクション中に更新しないとMySQLが判断した
行3なんかがあたとしたら、Bさんは行3に関しては読み取り・更新が出来る。

書き方が変だと、トランザクションはったつもりでも
レースコンディションが起こるので注意。
URLリンク(d.hatena.ne.jp)

242:nobodyさん
11/01/29 14:15:42
>>239
>具体的には・・・
を見ると、行ロックでググると良いと思う

243:240
11/01/29 14:17:43
一応?自己解決しました。

lib/jpmobile/mobile/docomo.rb 
をいじって、SJISへのコンバート処理をコメントアウトし、必ずUTF8を使うようにしたところ
問題が起こらなくなりました。

あまりよくない方法の気もするので、もっと良い解決策があったらご教授お願いします m( _ _ )m

244:nobodyさん
11/01/29 15:13:12 XpJ1rxWJ
>>240
ソース見て見たけど、mobile_filterってonlyとかexceptオプション認識しないのな…
swfを返すとこだけ別コントローラにして、mobile_filterをそれ以外に書く、
で回避できぬ?



245:239
11/01/29 16:47:50
>>241
>>242

分かり易い説明ありがとうございます。
トランザクションとロックの関係が分かっていなかったので混乱していました。
トランザクション中に更新されうる行をMySQLが判断してロックをかけてくれる、
というところでスッキリしました。

ただ、以下の点については

>Aさんが行1,2を更新している間は、Bさんは行1,2のコミットが終わるまでは、
>UPDATEやDELETEはもちろん、SELECT文での読み取りも不可能になる。

SELECT文はロックをかけないのでAさんが更新中でもBさんはSELECT可能なのではないですか?
もしSELECTも不可能になるのであれば何も心配無いのですが、
SELECTが可能なのであればBさんの更新でAさんの更新が消えてしまいます。

見当違いなことを言っていたらすいません。

246:nobodyさん
11/01/29 17:08:16
> トランザクション中に更新されうる行をMySQLが判断してロックをかけてくれる、

何を言いたいのか意味不だがトランザクションで複数のSQL文をまとめたところでロックをかけるのはSQL単体レベルってのは理解してる?

247:nobodyさん
11/01/29 17:43:34
>>245
BさんがSELECT実行するのは可能だが
コミット前のAさんの変更分をBさんがSELECTで読み取ることは出来ない
って意味だろ

248:nobodyさん
11/01/29 18:09:46
トランザクション中に別のプロセスが対象データを更新できるのなら、
それはトランザクションとは言わない。

249:nobodyさん
11/01/30 00:50:26 YHMQGBGn
大抵のフレームワークには、プラグインの機能が備わっています。
このプラグインを活用することで、高速開発が可能です。
URLリンク(1-byte.jp)

250:nobodyさん
11/01/30 09:12:32
NetBeans IDE 7.0からRuby on Railsのサポートを廃止
URLリンク(journal.mycom.co.jp)

使ってるんだが、Oracle・・・

251:akiyan
11/01/30 12:16:54
残念だよね
radrails久しぶりに使ってみよう

252:nobodyさん
11/01/30 16:03:53
aptanaの方も開発スピードが遅すぎてあやしいのだが

radrailsの技術者がaptanaに引き抜かれたけど、
IDEの開発じゃなくて別の仕事に割り当てられてるって
以前どこかのサイトで見たぞ。

253:nobodyさん
11/01/30 21:04:11
javaならともかく、rubyでeclipseのようなIDEを使う必要性を感じないのだが。

254:nobodyさん
11/01/30 23:13:14 APKrEmun
まー、だからこそOracleが手を引いたんだろうね。


255:nobodyさん
11/01/31 03:41:59
また使ってもないやつの妄想意見かよ

256:nobodyさん
11/01/31 08:46:15 Rhe/MGsR
一次ソースくらい見ればいいのに
URLリンク(netbeans.org)

based on existing low usage trends we are unable to justify the continued
allocation of resources to support the feature.

257:nobodyさん
11/01/31 09:05:55
なんか勘違いしてないか?

258:nobodyさん
11/01/31 10:58:50
<%= link_to @post.title @post %>
これを
<%= link_to @post %>
と書けるヘルパーありませんか?

259:nobodyさん
11/01/31 11:43:09
これはひどい。自分で作っても1分で完成だろ

260:nobodyさん
11/01/31 13:50:56
#model
def link_text
self[:title] || self[:name]
end

#helper
def link(obj)
link_to obj.link_text, obj
end

261:nobodyさん
11/02/01 00:24:55 yP2kD8Vl
railsとなんらかのDBで在庫管理をしたいんだけど
参考になりそうなサンプルないでしょうか

262:nobodyさん
11/02/01 11:25:53 lrZ+99HC

Syntax Highlight
URLリンク(ruby-toolbox.com)

CRM Apps
URLリンク(ruby-toolbox.com)

E-Commerce
URLリンク(ruby-toolbox.com)


263:nobodyさん
11/02/01 18:28:26
Rails3のscopeに関する質問です。

以下のようにクラスメソッドとして、scopeを呼び出すと意図した通りに動きます。

scope male, where(:sex => 1)
User.male

しかし、インスタンスメソッドとして呼び出すと、
そんなメソッドは無い、と怒られます。

u = User.all
u.all.male
NoMethodError: undefined method `male' for #<User:0xa41ae74>


scopeをインスタンスメソッドとして呼び出す方法はないのでしょうか?

264:nobodyさん
11/02/01 18:53:45 gX/bMisP
allはスコープ連鎖(ActiveRecord::Relation)を返さないので、付けるなら最後。


265:nobodyさん
11/02/01 20:27:21
スコープをインスタンスメソッドとしての意味がわからねえ。。。
ちなみにallが返すのはArrayな。

266:nobodyさん
11/02/01 21:51:18
絞り込み条件をIF文の結果次第で追加するとかなら
十分意味があると思う

267:nobodyさん
11/02/01 22:20:26
>>263 じゃないけど、上記のような単純なケースだと述語として使い回したいと
思うことはある。 User#male? とか別途用意するの面倒。


268:nobodyさん
11/02/01 22:27:21 ikyFKs3w
>>263
u はUserのインスタンスの配列であってUserのインスタンスではないぞ。

269:nobodyさん
11/02/01 22:31:18
User.where('18 > ?', :age).male

普通にできるけど^^;

270:nobodyさん
11/02/01 22:35:51 ikyFKs3w
そりゃ、問題は all だもの。


271:nobodyさん
11/02/02 02:35:39
こんにちは失礼します。
Railsを1週間ほど前から使い始めました。
初級者本を読んで何とか自分でTODOアプリ的なものを作れるようになりました。

272:nobodyさん
11/02/02 05:41:57
公開しる

273:nobodyさん
11/02/02 20:30:41
亀レスだけど
>>256
able と unableを見間違えたのか?

274:nobodyさん
11/02/02 22:16:10 QKkorMRK
>>273
??


275:nobodyさん
11/02/03 08:46:30
>>269
> User.where('18 > ?', :age).male
>
> 普通にできるけど^^;
クラスメソッドとインスタンスメソッドを
混同しているようだ。

276:nobodyさん
11/02/03 20:50:46
269は266へのレスだろう

277:nobodyさん
11/02/03 21:36:49
どう考えても違うだろ

278:nobodyさん
11/02/04 02:35:49
TALみたいなテンプレートエンジンってないですか?
デザイナーさんとの協業が大変すぎるので
いい方法を探してます。



279:nobodyさん
11/02/04 08:46:49 2Ew9ESxw
kwartz とか amrita (amrita2) とかかなぁ。
Rails から使えるようにする方法はあるのかわからん。


280:nobodyさん
11/02/04 17:22:59
rubyよりの質問なのですが、Enumerable の map と each は、
パフォーマンスに違いがあったりするのでしょうか。

内部的に、mapの方は並列化して処理できるから早いとか。


281:nobodyさん
11/02/04 19:49:15
>>279
ありがとう
ちょっと試してみる


282:nobodyさん
11/02/04 20:17:28
Enumerable のメソッドは全部 each を利用しています
つまり同じです

283:nobodyさん
11/02/05 21:02:57 DexYYH6t
ruby1.9.2, rails3.0.3, Passenger3.0.2です
public/image/***.jpgに画像を置いてるんですがファイルが存在しないときroutesを通さず404を返すにはどうすればいいですか?

284:nobodyさん
11/02/05 21:49:10 GPb9IKNi
mod_rewrite って public/.htaccess に書いても効くんだっけ?

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ¥.jpg$ [R=404]

みたいな(未確認)


285:nobodyさん
11/02/06 04:04:42
AllowOverride が書いてあれば逝けるんじゃね?


286:nobodyさん
11/02/06 09:42:56
public の下は apache が直接扱うように設定するんじゃないの?

287:nobodyさん
11/02/06 12:25:14
railsのmigrationってsvnと相性悪そうだけどどうなの?
特に複数人でのプロジェクト

288:nobodyさん
11/02/06 12:54:13
意味がわからない

289:nobodyさん
11/02/06 18:21:00
>>287
もう少し具体的に

290:nobodyさん
11/02/06 18:38:48
いやお前らが読み取れよ。

291:nobodyさん
11/02/06 19:59:39
>>283
これmongrelの場合どうすればいいの?

292:nobodyさん
11/02/06 21:29:00
バージョン管理されてるファイル群をさらに別機能でバージョン管理することになって
マージがめんどくさくなりそうな気がする

293:nobodyさん
11/02/06 21:44:27
db:migrate コマンド
でググったら幸せになれるかもだよ

294:nobodyさん
11/02/06 21:45:23
さすがに、一つのマイグレーションファイルを複数人で触るとかやんないよね?

295:nobodyさん
11/02/06 21:59:05
今会社で5人ぐらいでRailsアプリを開発してるけど、特に困ったことは無いな。
DB変更する時は突然マイグレーションファイルアップするのではなく、口頭でメンバーに伝えて情報共有する。
既存のマイグレーションファイルはいじらない。
rollbackでちゃんと元に戻るように記述しておく。
このぐらいを気をつけていれば何も問題ない。

296:akiyan
11/02/07 02:06:53
>>295
それって結局migrateとバージョン管理に頼らず口頭で管理してるってことになりませんか
5人規模のプロジェクトならいいけれど中華人民共和国の人口は13億ですよ 口頭で管理したら破綻しませんか

297:nobodyさん
11/02/07 02:14:37 QPqcOi6P
>>296
なんでそうなるの?
議論を経て仕様変更についての知識を共有した上で、
変更自体はマイグレーションファイルを作ってやってるわけでしょ?

298:nobodyさん
11/02/07 02:38:22
モデルクラスのメソッド内からselfを付けなくてもセッターにアクセス出来てしまうのですが、
これはRailsが裏で何かやってるんですかね?


membersテーブルにnameというカラムがあるとします。

class Member < ActiveRecord::Base
def mthd
name = 'Suzuki'
end

mthdを呼んでも何故かnameはローカル変数ではなくセッターとして認識される。

299:nobodyさん
11/02/07 15:58:01
>>298
裏でなにかやってるとか人聞きが悪いじゃないですか
そういうのやめてもらえますか?

300:nobodyさん
11/02/07 19:14:00
bundle install をすると、手を加えていたpluginが初期の状態に戻ってしまいます。
これを防ぐ方法はないのでしょうか。

301:nobodyさん
11/02/07 20:26:45
まず、pluginを直接変更するそのやり方を変えた方がいいと思うが

302:nobodyさん
11/02/07 21:37:50
オープンクラスで変更するにしても、bundle installの影響で
pluginのバージョンが変わってしまうと結局 危ないので freeze する方法が知りたいのです。


303:nobodyさん
11/02/07 21:59:32 QPqcOi6P
>>300
自分とこにgitリポジトリ作って、それを参照する。

304:nobodyさん
11/02/08 00:10:06
マイグレーションファイルは差分だ。
差分を書いてソースを生成するなんて阿呆かと思うが、それはさておき。
マイグレーションファイルをいじっていいのはコミットするまでだ。

305:nobodyさん
11/02/08 13:48:47
Ubuntuってrails嫌いなの?

306:nobodyさん
11/02/08 14:07:01
>>305
なんでそう思ったの?

307:nobodyさん
11/02/08 15:59:11
ごめんやつあたりだよ。
aptから標準で入るrailsが2.2なんだけど
rails -v とかのオプションとか効かくてどうなってるのか分からないし
gem installしても必要なパッケージが全部入らないし
aptでredmine入れても標準と構成とか違うっぽいし
rails難しすぎる

308:nobodyさん
11/02/08 16:36:03
>>307
なるほど、でもubuntuは半年毎のリリースをやってる割には、Canonicalが
直接アップデートしているパッケージ以外は結構古いし、まんまベースにした
debianのパッケージが入ってたりする。

aptじゃなくてSynapticでインストールすると推奨パッケージとか提案パッケー
ジとかがすぐ分かって便利だよ。

後、野良パッケージとか言って嫌う人もいるけど各パッケージの最新版を出し
てくれてる人達がいるんだけど、例えばrails絡みだと

URLリンク(launchpad.net)

とかね。まあ、俺はLTSからLTSに移って行く口なんでubuntuで最新を追っか
けるのも良し悪しだと思うけど、大抵は xxx ppa (xxxは探したい物の名前)とか
でググると結構出てくるよ。

309:nobodyさん
11/02/08 17:23:20
aptとかで入れるのは、ruby本体とrubygemsまでにしておいて、
gemがあるものは、gemで入れた方がいい。
ディストリビュータはgemがあるものまでパッケージを提供しようとせず、
ruby本体とrubygemsを更新してくれるだけにすれば混乱しないんだけどね。
gemは変化が激しいから、ディストリビュータ毎に提供するのは無理がある。


310:nobodyさん
11/02/08 18:33:41 0YpYbnaY
paco
ソースからインストールしたソフトをパッケージ管理してくれるありがたいソフト
URLリンク(www.daokaous.com)

wget URLリンク(rubyforge.org)
tar zxvf rubygems-1.3.5
cd rubygems-1.3.5
sudo paco -D ruby setup.rb


311:nobodyさん
11/02/08 20:34:45
>>309
他のRailsを使ったアプリのパッケージとバージョン合わせないといけないし、かなり無理があるんだよなー
Redmineをaptで入れて、Rails3をRuby1.9を使いたいときにaptではどうするの?と思ってしまう
依存gemはどうするのとか、それらが動くようにPassenger(Unicornでもいいけど)を調整するのかなり大変じゃないかとか

312:nobodyさん
11/02/08 20:41:42 0YpYbnaY
RVMで複数バージョンのRubyとRailsを共存させる
URLリンク(curiosity-drives.me)


複数のRubyを切り替えて使う「pik」
URLリンク(www.moongift.jp)


313:nobodyさん
11/02/09 00:02:11 2EhmOugw
神光 cinco

314:nobodyさん
11/02/09 00:03:32 pGh2UmwF
神の光のごとく素晴らしいイチモツが

315:akiyan
11/02/09 00:30:59
>>307
え?じゃあCentOSなら簡単だと思うの?

スキル不足を棚にあげてOSのせいにする人って久しぶりに見たわー
三年ぶりぐらいやわー

316:nobodyさん
11/02/09 14:29:18
かまってちゃんは放っておくのが一番

317:nobodyさん
11/02/10 21:21:49
Rails.cache.write で model などのオブジェクトを書きこむことは出来ないのでしょうか?
consoleを二つ開いて、

片方で
Rails.cache.write("hoge", "hogehoge")

とやり、もう片方で
Rails.cache.read("hoge")

とやると読み出せるのですが

Rails.cache.write("hoge", User.new)

とmodelオブジェクトを書きこむと、同一コンソール内では
Rails.cache.read("hoge")
でUserオブジェクトが読み出せるのですが、

もう一つのコンソールで読みだそうとすると
nil が戻ってきてしまいます。

ネットにあるいくつかの例をみるとシリアライズなしで
cacheに突っ込んでいるように見えるのですが。。。

318:nobodyさん
11/02/16 13:54:46
railsで発行されるSQLが最適かどうかチェックしてくれるプラグインがあったと思うのですが
名前を忘れてしまいました
知っている人がいたらおしえてくださいまし

319:nobodyさん
11/02/16 18:41:56 gaqY8R20
[Rails] query-reviewerでRailsアプリのボトルネックを見つける
URLリンク(d.hatena.ne.jp)

SpecialWarningというプラグイン
URLリンク(d.hatena.ne.jp)

N+1問題などを監視してパフォーマンスを改善するRailsプラグインBullet
URLリンク(blog.digital-squad.net)

Ruby on Railsのパフォーマンス向上に関する10のtips
URLリンク(blog.tkmr.org)
findメソッドはパワフルだけど基本SELECT * FROMなので場合によっては:selectで必要なカラムだけ読み込む、また:limitや:offsetを活用する

ごくごく基本的な Ruby on Rails のパフォーマンスチューニング
URLリンク(jijixi.azito.com)
:conditions オプションでキーに使われるようなカラムにはインデックスを作成すべし

:selectで取得するカラムを絞ったらパフォーマンスが倍に
URLリンク(brass.to)
レコード件数は110万件くらい
カラム数は30程度
インデックスは効いている(explainで確認済み)

Rails で MySQL を使うときの注意点 | METAREAL
URLリンク(www.metareal.org)
SQL を二段階に分けるといい
まず、最初の SQL でレコードの ID だけを SELECT する(int だけなので、このときの一時テーブルはメモリ上に作られる)
次に、その ID で必要な TEXT や BLOB を SELECT するんだ(これは ID による単純な検索なので一時テーブルは使われない)

これを知っておかないと、MySQLサーバの再起動でDBデータの不整合が発生するかもしれません! - よかろうもん!
URLリンク(d.hatena.ne.jp)

320:nobodyさん
11/02/16 19:10:43
古い!

321:nobodyさん
11/02/16 20:57:49
typusでno method error 'to_resource'って出るんですけどなんですか?このメソッド

322:nobodyさん
11/02/17 15:20:22 xNvbHaM3
任意の文字列を、日本語なら20文字、英語なら40文字で切りたい、
のですが可能でしょうか?
Rubyは日本語が3byteで表現されているようなので、単純に40byteで制限すると日本語が短くなってしまいます。

環境は、
Ruby1.8.7
Rails2.3.2
を使っています。

323:nobodyさん
11/02/17 17:11:00
まず日本語と英語を定義してもらわないと。
全角半角ならわかるけどさ。
全角英数字は?半角カタカナは?

324:nobodyさん
11/02/17 19:52:39 vzXvWGTO
environment.rbに
$KCODE = 'u'
require 'jcode'



truncate(category.description, 40, "...")

Rails(Ruby)でMTのtrim_toと同様のことをするならtruncateがあるよ - 京の路
URLリンク(blog.matake.jp)

How to truncate text in Ruby on Rails
URLリンク(paulsturgess.co.uk)


325:nobodyさん
11/02/17 21:12:41
$KCODEとかっていつの時代だよ

326:nobodyさん
11/02/17 21:52:45 vzXvWGTO

Rails 2.3.2と$KCODE
URLリンク(d.hatena.ne.jp)


327:nobodyさん
11/02/19 20:07:37.94
if session.blank?
logger.debug("hoge")
session = load_session(sid)
end

というコードがあった場合など、ありとあらゆる場合において、
session = load_session(sid) が実行されることってありえないですよね?

sessionが設定された状態でこのifまで来た場合、
当然 if の内容は実行されないのですが、
なぜか、必ずこのifブロック後に
session がnilになります(session_storeはmemcahe)。
ところが、
#session = load_session(sid)
とコメントアウトすると、sessionのデータは維持されたままになります。
logger.debug("hoge") が実行されていないことは確認済みです。

session = load_session(sid) などでなく、session = ["hogehoge"] などとしても
ifブロック後に、必ず session がnilになってしまいます。

原因が分からなくて困っています...
sessionのキーワードは物凄く独特の動きをするのでしょうか...

328:nobodyさん
11/02/19 20:54:37.03 Ah4zqOBt
logger.fatal にしてみるとか。


329:nobodyさん
11/02/19 21:10:54.73
>>327
>>222-223

330:222
11/02/19 21:22:01.27
session を書き換えたいということかと読み間違えて

+ def session_with_override
+ @session_override || session_without_override
+ end
+
+ def session=(val)
+ @session_override = val
+ end
+
+ alias_method_chain :session, :override

なんてやってみたけど、本当に大丈夫なのかはわからない


331:nobodyさん
11/02/20 08:48:30.79 gro3cDqj
引き続き、土は生ぶ 明あき弘ひろをさがしています。
三十歳 programmer 日藝出身 最寄り駅はさぎのみや駅もしくは阿佐ヶ谷駅
福岡県出身との情報があります。
連絡先・hayakudetekoi@hotmail.co.jp

332:nobodyさん
11/02/22 22:01:35.82
URLリンク(www.amazon.co.jp)これ読んでるんだけど
もっと新しいのに対応してるやつないかな?
入門書じゃなくて、リファレンスとか分厚いやつ

333:nobodyさん
11/02/22 23:22:41.77
日本語のRails3書籍はまだ無いねぇ
かろうじて、電子書籍はあるけど入門書みたいだし
URLリンク(tatsu-zine.com)

334:nobodyさん
11/02/23 18:04:09.58 rC8XpxRZ
14歳の天才プログラマーがRubyの最年少コミッターに選ばれる @sora_h @tehutehuapple
スレリンク(news板)

335:nobodyさん
11/02/24 04:22:41.91
>>332
洋書を読むしかない、
日本語で出るとしても夏ぐらいまで待たないと出ない。


336:nobodyさん
11/02/24 17:40:02.74
ruby1.9でrails2.3系を動かすのは間違いだった気がする

337:nobodyさん
11/02/25 00:36:16.88
現在裁判中です。
私一人の力で、過去のプログラマと現在のプログラマを比較して
裁量労働制に対して争い、訴訟を戦い抜くのは無理な気がしています。
誰か助けてください。
何か良い案があれば以下のスレッドまでお願いします。

スレリンク(prog板:105番)
[ プログラマー ] 裁量労働制で働いてるプログラマ

スレリンク(prog板:99番)
> 99 名前:安田英幸 ◆21Da3ggG3M [sage]: 2011/02/24(木) 16:59:54.83
> 皆様のお知恵を拝借させて頂きたいです。
> 私は現在、ネットワーク応用通信研究所と民事事件を係争中です。
> 民事事件は以下の通りです。
>
> 鳥取地方裁判所米子支部民事部A
> 平成22年(ワ)第261号未払賃金等請求事件
> 原告 安田英幸
> 原告訴訟代理人 弁護士 野口浩一
> 被告 株式会社ネットワーク応用通信研究所
> 被告訴訟代理人 弁護士 飯田 藤雄
> 同           弁護士 岡田 卓巳
>
> 訴状・準備書面のPDFは以下のリンクからダウンロードできます。
> URLリンク(www.umedoblock.net)
> sha1sum 9301547b7f9cd5d8bd9611e42d5c8d8248f5406a

338:nobodyさん
11/02/25 02:29:25.87
ほわわぁーー
英語できない自分にぴったり。
ASCIIcasts - Recent Episodes
URLリンク(ja.asciicasts.com)



339:nobodyさん
11/02/26 11:23:56.55
Railsは環境を選びすぎる。
どこでも動くPHP上で動作するCakePHPは
Railsの思想を取り入れた最強のRails
本当のRailsは本家ではなくCakePHP

340:nobodyさん
11/02/26 11:33:02.32
馬鹿には無理

341:nobodyさん
11/02/26 22:08:45.37
天下のツイッター様もRailsからscalaに浮気するわけだね。

342:akiyan
11/02/27 14:48:03.43
>>339
同意します

343:nobodyさん
11/02/27 18:21:00.38 vqwKBDSL

Sending or receiving email with Rails? Easy | Lead Thinking
URLリンク(leadthinking.com)

URLリンク(github.com)

344:nobodyさん
11/02/28 01:33:18.79
>>339
そもそもしょぼい共有レンタルサーバで動かすことは想定していない。
いずれVPSが主流になるので解決は時間の問題だよ。

345:nobodyさん
11/02/28 05:14:13.97 Q0oDOqdO

Riding Rails: Rails 3.0.5 has been released!
URLリンク(weblog.rubyonrails.org)

346:nobodyさん
11/02/28 06:40:39.93
そもそも日本のレンタルサーバーは時代遅れな物が多い。

347:nobodyさん
11/02/28 10:36:32.67
match '/redirect/*url' :to => 'application#redirect'

/redirect/URLリンク(hoge.com)

params[:url] #=> 'http:/hoge.com/'

何かいい解決策はないですか?
素直にエスケープ?

348:nobodyさん
11/02/28 21:50:52.12
そもそも日本のウェブデザの技術力が低過ぎる。
いまだhtmlと画像をftpでうpするだけの古典的なウェブ制作を続けているし。
そういう椰子のレン鯖需要が高いから、レン鯖も昔ながらのビジネスが続いている。

亜米利加とかソーシャルネットワークとか新たなビジネスモデルがどんどん誕生しているのに、日本にはそれが無い。


vpsは導入コストが高過ぎてコストパフォーマンス悪いな。
クラウドコンピューティングのほうがまだ柔軟。
ちなみにvpsといってもがんがんror動かしたらそんなに快適には使えない。専鯖のパフォーマンスを得られる訳でもないし。

349:nobodyさん
11/02/28 22:29:30.25
寝言は寝てる時間に言ってもらえませんか?

350:nobodyさん
11/02/28 22:41:24.35
椰子ってひさびさに見た

351:akiyan
11/02/28 23:27:14.48
>>348
あなたの技術力も相当低そうですけど

352:nobodyさん
11/03/01 17:16:51.15 N/zWmU2v
サーバサイドJavaScriptの本命「node.js」の基礎知識(1/3)- @IT
URLリンク(www.atmarkit.co.jp)
ApacheとNginx(エンジンエックス)が例に挙げられて、イベントループのアーキテクチャの優位性について、論じられてきました。
Apacheは、スレッドベースで動作するアーキテクチャになっており、
Nginxは、イベントループで動作します。
スレッドベースの場合、クライアントからのリクエストごとに対応するスレッドを作成します。
その際、メモリも確保されるため、同時接続するクライアントの数に比例して、使用するメモリ量も増えていきます。


353:nobodyさん
11/03/01 22:09:59.41
Rails3とRuby1.9.2の組み合わせで、ActionMailerを使い、
ISO-2022-JPでメールの送信、添付ファイル付きを実現したいのですが、
ぐぐっても1.8系の情報しか見つかりません。
みなさんどのように実現していますか?

charsetを指定しても、本文には適用されず。
Mailモジュールをオーバーライドしたものは見かけましたが、
それを参考にしても1.9系ではダミーエンコードなので、
force_encodingなどでちょこちょこ指定しても、どこかでincompatible~が出ます。
本文だけだなんとかいけても、添付有りだとダメなど。mail 2.2.15 です。




354:nobodyさん
11/03/02 12:38:36.13 FoDJ4ur8
Chapter 11, "Sending Email", Chapter 12, "Designing an API".
URLリンク(www.manning.com)


355:nobodyさん
11/03/02 15:56:55.12
>>353
そんなことしても無駄

356:nobodyさん
11/03/02 20:36:48.57 94wAX4xl
RubyもPHPもしねばいいのに。

357:nobodyさん
11/03/02 20:48:44.60
Rubyist,PHPerでPerlはなんだっけ?

358:nobodyさん
11/03/02 21:42:09.30 B5/XlmcK
PythonはPythonista
Perlは知らぬ


359:nobodyさん
11/03/02 21:55:14.26
Perlerだろ

360:nobodyさん
11/03/02 23:34:45.06 pQN+ZTcr
ERBでブラックジャックを作っているのですが、デッキを配列にいれてるのですがクッキーにその配列を渡すとエラーが出てしまいます。
そもそもクッキーに配列は渡せないんでしょうか?それとも使っているサーバーの設定でそういうのがありえるんでしょうか?

361:nobodyさん
11/03/02 23:46:01.31 B5/XlmcK
クッキーの値は文字列(4KBまで)。
クッキーセッションなんかでもいろいろエンコードして文字列にしてるぞ。

362:iQura
11/03/03 00:14:52.94
>>348
動きが木になるならVPSをSWAPさせれば良いとおもう………
俺は本当に俺しか使わないオレオレVPSだからDTIだけどw
ハード面木にせずTUKAERU.NETから、自鯖よりまぢで楽だわw
そして、レン鯖の仕様に左右されてばかりだった俺の悩みが消えた。
伊豆・和鳥・米鳥・使えないネット・ドクドク・エクスリア・ぶっとびねっと・プロホス
バイバイノシ(^_^)/~

363:nobodyさん
11/03/03 01:03:24.14 n5shOCyG
>>361
mydeck=Array.new
comdeck=Array.new
print cgi.header("type"=>"text/html","charset"=>"utf-8","cookie"=>[
CGI::Cookie.new("name"=>"mydeck","value"=>mydeck),
CGI::Cookie.new("name"=>"comdeck","value"=>comdeck)
])

で配列は渡せませんか?これでエラー出てしまうんですがこの前友達に聞いたら配列で渡せるよーって言ってたんですけど
やっぱり渡せないんですかね?渡せなかったら要素を一つ一つループかなんかで渡さなきゃいけないんですかね?

364:nobodyさん
11/03/03 01:05:44.71
適当にエンコード/デコードすりゃいいじゃん
JSONなりいろいろあるし

365:nobodyさん
11/03/03 12:10:43.93
ここはrailsスレだ

366:nobodyさん
11/03/03 13:02:44.69
だよな、dispatcher何使ってんのさ

367:nobodyさん
11/03/03 14:31:25.01
教えて君も教える君もしねばいいのにww

368:nobodyさん
11/03/04 16:03:49.06
じゃあ、掲示板に何しにきてるんだよ。
単に暇つぶしが集うところか?w

369:nobodyさん
11/03/04 20:51:30.60
Yahoo!知恵袋でやれ

370:nobodyさん
11/03/05 05:38:47.85
>>364 がベストアンサー

371:nobodyさん
11/03/05 21:09:47.60 YpvJehsI
レシピサイト「楽天レシピ」が訪問者数を拡大中--ネットレイティングス調べ - CNET Japan
URLリンク(japan.cnet.com)

ネットワーク外部性
クックパッド
URLリンク(twitter.com)
URLリンク(twitter.com)

372:nobodyさん
11/03/06 11:53:58.84
RailsのアプリケーションサーバもTomcatのように
コネクションプーリングできますの?

373:nobodyさん
11/03/06 13:33:08.80
一応してます

374:nobodyさん
11/03/06 14:27:08.88
すいません。Ruby on rails(つづりあってますかね?)を覚えるためだけにRubyをやりたいと思います
Windowsなんですが種類がいっぱいどれをインストールしたらいいのか分かりません
これはこうって書かれている説明も読みましたが自分の用途に向いているものなのか分からず選択できません
主にWebページ用に利用する場合は何をインストールしたら良いでしょうか?

375:nobodyさん
11/03/06 14:45:56.58
種類ってそんなにあったかな。
↓でいいんじゃない?

URLリンク(rubyinstaller.org)


376:nobodyさん
11/03/06 14:51:59.85
URLリンク(www.oiax.jp)
初心者には多分これが一番わかり易い

377:nobodyさん
11/03/06 20:08:11.32
JRubyもオススメ

378:nobodyさん
11/03/06 20:52:10.52
phpもrubyもできる人に聞きたいんだけどwebサイト作るときって言語選ばず何が一番いいですか?
高速に開発する場合、大規模な開発に利用する場合、それぞれ教えてください

自分は前者はcakephp,後者はzend frameworkになります
特にphpが一番好きというわけでもなく、普段はruby使いなんですが

379:374
11/03/06 23:42:53.19
インストールできました ありがとうございます

380:nobodyさん
11/03/07 01:51:21.06
>>378
今はどんな言語を選ぶかよりも
どんな開発手法を用いるかに重点が置かれている。
まぁテスト開発しろって事。

381:nobodyさん
11/03/07 02:13:54.71
まあ、一番大事なのは、どんな言語を使うかでも、どんな開発手法を使うかでもなく
どんなサイトにするかなんだけどね、ディレクターの手腕が一番大事。

382:nobodyさん
11/03/07 04:58:53.94
>>378
django
フォームフレームワークが秀逸。
cakephpもzend frameworkもフォームまわりがガッカリすぎる。
まぁZendの方は他と共存させるけど。
その2つよりは、djangoのフォーム機能を移植したsymfonyのほうがいいな。

383:nobodyさん
11/03/07 05:00:41.16
そんなこと言ったらプログラマーが消えちゃうよ?
だってPやDになってプログラマーをこき使うのが一番楽だもの。

孫会社のプログラマーにはデスマーチさせておいて
本社のPやDは定時に帰る。
夜7時に問い合わせてももう帰社しましたとか
プログラマーは0時コースなのに。

384:nobodyさん
11/03/07 10:45:29.48
ほんとにruby+railsのみで食えてる会社ってあるのかな

385:nobodyさん
11/03/07 11:21:18.97
>>374
Ruby はじめてなら
Windows は止めといた方が良い

386:nobodyさん
11/03/08 14:26:23.56 T6PeO+A6
プロジェクト管理ツール「Basecamp」の使い方 | Webクリエイターボックス
URLリンク(www.webcreatorbox.com)

387:nobodyさん
11/03/08 15:25:44.93
>>386
グロ注意

388:nobodyさん
11/03/09 00:28:45.35
どこがグロなの?

389:nobodyさん
11/03/09 19:12:03.46 Ta+AYYXA
default_scope に joins 指定すると count がグループ化されてしまう問題について解決法きぼんぬ。

390:nobodyさん
11/03/09 19:30:37.17
なんの解決法にもなってないけど、default_scopeは本当に必要でない限り使わないほうがいいでFA
不都合や不具合の原因になることが多すぎる

391:nobodyさん
11/03/09 19:55:29.09
確かに食い合わせに気をつけないと不具合が多発するように思うけど、
本当の原因は各scopeをしっかり部品化できていないことなんじゃないだろうか。
そのcountを求めるためにjoinは必要なのか?

392:nobodyさん
11/03/09 20:05:18.85 Ta+AYYXA
必要ないから解決法求めてるんじゃん

393:nobodyさん
11/03/09 20:25:23.52
じゃあdefault_scopeからjoinを外せばいいだろ。
つまりそれはjoinをデフォルトにすべきじゃなかったか、
countする部分が特殊だということだ。
後者ならcountの元をdefault_scopeにしなきゃいいだけの話。

394:nobodyさん
11/03/09 20:51:13.63 Ta+AYYXA
> 後者ならcountの元をdefault_scopeにしなきゃいいだけの話。

残念!プラグインの中なのでいじれません!!

395:nobodyさん
11/03/09 20:58:19.00
じゃあdefault_scopeの中からjoinを外せばいいだけだろ

396:nobodyさん
11/03/10 23:02:04.20
うざ

397:389
11/03/14 13:49:44.78 s2zLVl4R
WHERE EXISTS で解決できました。
つきましては ActiveRecord での EXISTS の書き方を教えてください

398:nobodyさん
11/03/14 14:12:42.71 10myasjs
ARel には exists がそのまんまあるみたいよ。


399:nobodyさん
11/03/14 16:04:00.72
復興特需はRailsでカバーだな


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch