1 名前:nobodyさん mailto:sage [2010/12/11(土) 10:58:56 ID:???] ■前 【Ruby】Ruby on Rails Part10 hibari.2ch.net/test/read.cgi/php/1282991262/ ■参考サイト <英語> 本家:rubyonrails.org API document:api.rubyonrails.com/ 開発者のblog:weblog.rubyonrails.org/ 参考wiki:wiki.rubyonrails.org/rails <日本語> Rails' wiki: wiki.fdiary.net/rails/ twitter.com/dhh www.loudthinking.com/
178 名前:nobodyさん mailto:sage [2011/01/12(水) 01:01:58 ID:???] 内部的にsjisを使う または表もutf-8にする
179 名前:nobodyさん [2011/01/12(水) 08:55:08 ID:PVfPMtkv] force_encodingはバイト列はいじらない。 間違いなくUTF-8が入っているけどアプリにはそれがわからない という場合に使う。 とりあえずparams[:key] と params[:key].encoding を出力してみれば?
180 名前:nobodyさん [2011/01/12(水) 10:58:19 ID:Jb3zJbvV] RailsはUTF-8を受け取る前提でつくられたフレームワークなせいか、 paramsを組み立てる途中で強制的にUTF-8エンコーディング情報を 付けてしまう(ActionDispatch::Http::Parameters)。 とりあえずは key = params[:key].encode('UTF-8', 'Shift_JIS') みたいにエンコードし直すのが手っ取り早い。
181 名前:nobodyさん mailto:sage [2011/01/12(水) 15:26:13 ID:???] railsで特定のgemやpluginのmethodをoverrideしたいときはどうすれば良いでしょうか? initializers配下で overrideの定義を書いたファイルをrequireするやり方だと、上手くいきません。 (initializers配下のファイルが読み込まれたあと、pluginのファイルが読み込まれるため?)
182 名前:nobodyさん mailto:sage [2011/01/12(水) 16:21:53 ID:???] application.rbのconfig.after_initializeブロックの中でrequireすれば?
183 名前:158 [2011/01/12(水) 17:18:42 ID:gnHL4Y+W] >168 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で入れた方がいいんですか。 アドバイスありがとうございます。
184 名前:nobodyさん mailto:sage [2011/01/12(水) 17:29:17 ID:???] >>183 あとはrubyのバージョンとrubyをどうやって入れたか。 同じような環境(mysqlはバイナリインストール、rubyはソースからインストール)だけど、全く問題出てないので。
185 名前:158 [2011/01/12(水) 18:35:35 ID:gnHL4Y+W] >183 ruby1はmacにもともと入ってやつでバージョンは1.8.7です。
186 名前:nobodyさん [2011/01/12(水) 18:54:35 ID:Jb3zJbvV] (OS付属の)ユニバーサルバイナリのRubyと そうでないMysqlのライブラリって一緒に使えるのかな。
187 名前:158 [2011/01/12(水) 18:57:44 ID:gnHL4Y+W] まさかのそういう問題なのかorz 一から入れ直してみようと思います。 みなさまいろいろ親切にありがとうございました!
188 名前:nobodyさん mailto:sage [2011/01/12(水) 22:10:57 ID:???] >>182 返答ありがとうございます。 しかし、after_initializeの中でrequireしてもダメのようです。 困った。。。 ttp://stackoverflow.com/questions/4412018/rails-devise-how-to-render-login-page-without-a-layout ここにあるAnswerの subclass を作るやり方のようにやりたいのですが。。。
189 名前:nobodyさん [2011/01/12(水) 22:53:11 ID:PVfPMtkv] オーバーライドを行うファイルの先頭で、置き換えたい定義の入っている ファイルをrequireしてしまってもダメ?
190 名前:nobodyさん mailto:sage [2011/01/13(木) 11:04:43 ID:???] >>189 いけました! ありがとうございます!!
191 名前:nobodyさん mailto:sage [2011/01/13(木) 12:58:25 ID:???] >>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さん [2011/01/14(金) 13:18:07 ID: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さん mailto:sage [2011/01/14(金) 13:55:11 ID:???] 2.3系は1.9系の対応が不完全とアナウンスされていたような きりないから、可能ならRails3.0.3にするかRuby1.8.7に変更した方がいいよ
194 名前:nobodyさん mailto:sage [2011/01/14(金) 14:03:41 ID:???] そのviewファイルはutf8になってるの? あと、htmlの指定でもutf8になってるんだろうか。 sjisが入力されてるような気がする
195 名前:nobodyさん [2011/01/14(金) 14:13:12 ID:BgLvsnps] >>193 なるほど…。 やっぱりそこを変えたほうがいいのですね。 >>194 両方utf8になっていると思われます。
196 名前:nobodyさん mailto:sage [2011/01/14(金) 22:23:10 ID:???] post と tag が多対多のとき group が邪魔です Post.joins(:tags).where(['tags.name like ?', params[:q]]).group('post.id')
197 名前:nobodyさん mailto:sage [2011/01/14(金) 22:25:58 ID:???] で?
198 名前:nobodyさん mailto:sage [2011/01/15(土) 00:23:08 ID:???] しかもlikeとかw
199 名前:nobodyさん mailto:sage [2011/01/15(土) 08:49:55 ID:???] たぶんこういうことだろう post = Post.new(:title => 'あい') post.tags.build(:name => '純愛') post.tags.build(:name => '恋愛') post.save Post.joins(:tags).where(['tags.name like ?', '%愛%']) #=> 「あい」が2つ出る
200 名前:192 [2011/01/17(月) 00:57:31 ID: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さん mailto:sage [2011/01/17(月) 01:10:44 ID:???] ちなみに3系では <%=h の「h」はいらない デフォルトでエスケープされる mysqlのライブラリがおかしいとかじゃないのか? ちゃんとmysql2使ってる?
202 名前:192 [2011/01/17(月) 03:47:43 ID:eCmWyBLt] >>201 <%=h の「h」いらないんですね!自分何も知らなさすぎるorz mysql2使ってます!
203 名前:nobodyさん mailto:sage [2011/01/17(月) 23:38:18 ID:???] windowsについての質問って今までほとんど解決してないんだよなあ ここにいる人のほとんどが使ってないだろうから というわけで俺も力になれません
204 名前:nobodyさん mailto:sage [2011/01/17(月) 23:48:34 ID:???] 普通に使ってるが。 mysql2はdevkitが必要だと思うが入れたのか? 前にも書いたし勝手に解決してないことにするなよ。
205 名前:nobodyさん mailto:sage [2011/01/18(火) 19:11:55 ID:???] AR で human sort って出来ますか? データに関してはRDBに丸投げですか?
206 名前:nobodyさん mailto:sage [2011/01/20(木) 01:29:44 ID:???] RoRはぶっちゃけもう終わったと思います。
207 名前:nobodyさん mailto:sage [2011/01/20(木) 02:19:35 ID:???] 始まってもいなかった
208 名前:nobodyさん mailto:sage [2011/01/20(木) 17:05:05 ID:???] PHPフレームワークを使う → やっぱり優秀ではなかった → RoRを使う → やっぱりダメだった → Tomcat+javaにしてみた → これが正解だと思った
209 名前:nobodyさん [2011/01/20(木) 17:16:00 ID:SSKhJITE] JavaからRubyへ ―マネージャのための実践移行ガイド www.amazon.co.jp/gp/product/4873113202
210 名前:nobodyさん mailto:sage [2011/01/20(木) 17:16:13 ID:???] Tomcatはフレームワークではなく、ソフトウェアの名前。 これに相当するのはRailsで言えばPassenger。 多少でも分かっていれば、こんなバカな間違いはしない。 またいつも荒らしてる勉強会の出席者?
211 名前:nobodyさん mailto:sage [2011/01/20(木) 17:30:50 ID:???] ひょっとこしてアスペ?
212 名前:nobodyさん mailto:sage [2011/01/20(木) 17:57:49 ID:???] そういえばぽろっとバレたやつがいたな
213 名前:nobodyさん mailto:sage [2011/01/21(金) 04:07:57 ID:???] 最近のJavaのフレームワークってどんな感じになってるの?
214 名前:nobodyさん mailto:sage [2011/01/21(金) 07:36:26 ID:???] ここはrailsスレだよ、あんぽんたん
215 名前:nobodyさん mailto:sage [2011/01/21(金) 08:33:12 ID:???] JRuby on Rails
216 名前:nobodyさん mailto:sage [2011/01/21(金) 12:46:05 ID:???] それが次の勉強会のテーマ?
217 名前:nobodyさん [2011/01/22(土) 03:04:07 ID:a6Nv7f5X] status.heroku.com.zurukko.jp/incident/115
218 名前:nobodyさん mailto:sage [2011/01/23(日) 12:04:05 ID:???] ここはSQLチューングは上級者テクニックだと思ってる 低脳ばかりだからしょうがないよ^^ たとえばMySQLならexplainで実行計画を確認するのは 初心者が一番初めに覚えるべき基本だろ。 基本をはずしたヤツが開発したWebアプリはサイトがヒットした瞬間、 「トップページも表示されません」「今日は売り上げがゼロでした」という 間抜けなことになる(笑 こんなこと言っても、ここの連中には馬の耳に念仏だろうけどね(笑 まぁ 生まれつき低脳だから仕方ない^^ なんていうか、向上心が無い。知識が狭くて浅いが、本人には自覚が無いのでたちが悪い。
219 名前:nobodyさん mailto:sage [2011/01/23(日) 12:54:43 ID:???] いきなりどうした ママに怒られたか
220 名前:nobodyさん mailto:sage [2011/01/23(日) 20:39:24 ID:???] どんな高級言語やフレームワークを使おうとも、その裏でどういうロジックで動いているかを 考えるのは当たり前のこと Rails で間抜けな SQL を発行している人間は Java を使っても間抜けなコーディングになるだけ
221 名前:nobodyさん mailto:sage [2011/01/23(日) 21:03:33 ID:???] SQL で間抜けな filesort を発行している人間は COBL を使っても間抜けなコーディングになるだけ
222 名前:nobodyさん mailto:sage [2011/01/24(月) 00:32:29 ID:???] 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さん mailto:sage [2011/01/24(月) 00:57:19 ID:???] 君が同名のローカル変数を作ってしまったからだ Rails関係ないから初心者スレに行くといい
224 名前:nobodyさん mailto:sage [2011/01/24(月) 04:21:21 ID:???] あう、if false な状況でもローカル変数が作られるとはまったく想像もしてなかった。
225 名前:nobodyさん mailto:sage [2011/01/24(月) 08:21:35 ID:???] 代入メソッドはself使えってMatzがいつも言ってるだろ
226 名前:nobodyさん mailto:sage [2011/01/24(月) 16:22:48 ID:???] 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さん mailto:sage [2011/01/24(月) 16:58:51 ID:???] 初 心 者 ス レ に い け
228 名前:nobodyさん mailto:sage [2011/01/24(月) 17:10:48 ID:???] p Class.new.instance_eval{include M}.new.a # => 1
229 名前:nobodyさん mailto:sage [2011/01/24(月) 17:19:15 ID:???] >>226 1.9 だと 1 になるな
230 名前:nobodyさん mailto:sage [2011/01/25(火) 15:35:25 ID:???] Memcachedベースのsesson_store を利用している場合に session_id から session を復元する方法はありませんか? (Rails3+Dalli です) ActiveRecordベースの場合、以下のようにして復元できたのですが。。。 session = ActiveRecord::SessionStore::Session.find_by_session_id(session_id)
231 名前:nobodyさん [2011/01/25(火) 17:12:30 ID:yu47GaxV] >>230 うちはまだ Dali でも Rails3 でもないけど、cache をストアに使っている MemCache クラスのインスタンスだとすれば、cache["session:#{session_id}"] で取れてる。 memcache上のキー自体は #{namespace}:session:#{session_id} になっている。
232 名前:230 mailto:sage [2011/01/25(火) 20:00:15 ID:???] >>231 返答ありがとうございます。 以下のやり方でいけました。 session = Dalli::Client.new('localhost:11211').get("rack:session:#{session_id]}") デシリアライズまで透過的にやってくれるのはありがたいのですが、 memcacheのクライアントをリクエストのたびに毎回生成してしまうやり方なので、 負荷的によろしくなさそうなのが何とも。何か良い方法はないものかな。 Rails.cache.fetch(session_id) とかで取れれば、楽なんですがねぇ。
233 名前:nobodyさん [2011/01/25(火) 20:44:25 ID:F3Uu324/] ActionController::Base.session_options[:cache] あたりに 入ってなかった?
234 名前:230 mailto:sage [2011/01/25(火) 22:13:27 ID:???] 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さん [2011/01/27(木) 02:20:28 ID:8vsS5446] b.hatena.ne.jp/entry/japan.cnet.com/news/business/20425484/ 【ネット/料理】「年内にクックパッド抜く」 楽天レシピ、急成長 toki.2ch.net/test/read.cgi/wildplus/1296032687/
236 名前:akiyan mailto:sage [2011/01/28(金) 23:35:53 ID:???] cakePHPにできないことは無いし
237 名前:nobodyさん [2011/01/29(土) 02:50:04 ID:ioBbPtI8] 結局クックパッドは楽天レシピに抜かれる弱肉強食WEB - invizi invizi.net/subject:58 [クックパッド][cookpad][ruby][rails][楽天]
238 名前:nobodyさん [2011/01/29(土) 02:51:19 ID:ioBbPtI8] メディアの存続にとって必要なのは「金」か「カルチャー」か - invizi invizi.net/subject:60
239 名前:nobodyさん mailto:sage [2011/01/29(土) 13:25:51 ID:???] RailsでMySQLを使っているときのトランザクションについて教えてください。 Book.transaction do 処理1 処理2 end このようなコードを書いた場合、 処理1と処理2がいずれも実行されるか、いずれも実行されないか を保障するというのは理解できるのですが、 処理1と処理2の間に別プロセスがBookテーブルに変更を加えてしまうことはあり得ますか? 具体的には、Bookテーブルにcountというカラムがありまして この本を保持する人の人数を保持しています。 ユーザーからのあるアクションによって、複数のbookのcountを更新する必要があるのですが、 Aさんが更新中にBさんが更新してしまうと整合性が取れなくなってしまう問題に当たっています。 この更新処理を上のコードのトランザクションで囲めば解決されるのでしょうか?
240 名前:nobodyさん mailto:sage [2011/01/29(土) 13:35:21 ID:???] 質問させてください。携帯サイトの開発をしています rails3+jpmobile環境なのですが、jpmobileのconfig.jpmobile.mobile_filter をオンにした状態化で swfファイルを send_file or send_data すると jpmobile のフィルタの影響で不正な swf ファイルが送信されてしまいます なんとか、mobile_filter をオンにしつつ、正常な swf ファイルを送信する方法はないでしょうか?
241 名前:nobodyさん mailto:sage [2011/01/29(土) 14:10:00 ID:???] railsの設定ではなくて、MySQLのトランザクションレベルによる。 ttp://dev.mysql.com/doc/refman/5.1/ja/innodb-transaction-isolation.html InnoDB使ってるだろうから、デフォルトの REPEATABLE READ だと思われる。 結論からいうと、Bookテーブルは別のプロセスから変更を受けうる。 ただし、Bookテーブル内のロックされた行は 別プロセスから変更を受けないことが保証される。 テーブルレベルのロックと行レベルのロックの違いを汁。 Aさんが行1,2を更新している間は、Bさんは行1,2のコミットが終わるまでは、 UPDATEやDELETEはもちろん、SELECT文での読み取りも不可能になる。 ただし、Aさんがそのトランザクション中に更新しないとMySQLが判断した 行3なんかがあたとしたら、Bさんは行3に関しては読み取り・更新が出来る。 書き方が変だと、トランザクションはったつもりでも レースコンディションが起こるので注意。 ttp://d.hatena.ne.jp/LukeSilvia/20100130/p1
242 名前:nobodyさん mailto:sage [2011/01/29(土) 14:15:42 ID:???] >>239 >具体的には・・・ を見ると、行ロックでググると良いと思う
243 名前:240 mailto:sage [2011/01/29(土) 14:17:43 ID:???] 一応?自己解決しました。 lib/jpmobile/mobile/docomo.rb をいじって、SJISへのコンバート処理をコメントアウトし、必ずUTF8を使うようにしたところ 問題が起こらなくなりました。 あまりよくない方法の気もするので、もっと良い解決策があったらご教授お願いします m( _ _ )m
244 名前:nobodyさん [2011/01/29(土) 15:13:12 ID:XpJ1rxWJ] >>240 ソース見て見たけど、mobile_filterってonlyとかexceptオプション認識しないのな… swfを返すとこだけ別コントローラにして、mobile_filterをそれ以外に書く、 で回避できぬ?
245 名前:239 mailto:sage [2011/01/29(土) 16:47:50 ID:???] >>241 >>242 分かり易い説明ありがとうございます。 トランザクションとロックの関係が分かっていなかったので混乱していました。 トランザクション中に更新されうる行をMySQLが判断してロックをかけてくれる、 というところでスッキリしました。 ただ、以下の点については >Aさんが行1,2を更新している間は、Bさんは行1,2のコミットが終わるまでは、 >UPDATEやDELETEはもちろん、SELECT文での読み取りも不可能になる。 SELECT文はロックをかけないのでAさんが更新中でもBさんはSELECT可能なのではないですか? もしSELECTも不可能になるのであれば何も心配無いのですが、 SELECTが可能なのであればBさんの更新でAさんの更新が消えてしまいます。 見当違いなことを言っていたらすいません。
246 名前:nobodyさん mailto:sage [2011/01/29(土) 17:08:16 ID:???] > トランザクション中に更新されうる行をMySQLが判断してロックをかけてくれる、 何を言いたいのか意味不だがトランザクションで複数のSQL文をまとめたところでロックをかけるのはSQL単体レベルってのは理解してる?
247 名前:nobodyさん mailto:sage [2011/01/29(土) 17:43:34 ID:???] >>245 BさんがSELECT実行するのは可能だが コミット前のAさんの変更分をBさんがSELECTで読み取ることは出来ない って意味だろ
248 名前:nobodyさん mailto:sage [2011/01/29(土) 18:09:46 ID:???] トランザクション中に別のプロセスが対象データを更新できるのなら、 それはトランザクションとは言わない。
249 名前:nobodyさん [2011/01/30(日) 00:50:26 ID:YHMQGBGn] 大抵のフレームワークには、プラグインの機能が備わっています。 このプラグインを活用することで、高速開発が可能です。 1-byte.jp/2011/01/06/open_trivist/
250 名前:nobodyさん mailto:sage [2011/01/30(日) 09:12:32 ID:???] NetBeans IDE 7.0からRuby on Railsのサポートを廃止 journal.mycom.co.jp/news/2011/01/28/061/index.html 使ってるんだが、Oracle・・・
251 名前:akiyan mailto:sage [2011/01/30(日) 12:16:54 ID:???] 残念だよね radrails久しぶりに使ってみよう
252 名前:nobodyさん mailto:sage [2011/01/30(日) 16:03:53 ID:???] aptanaの方も開発スピードが遅すぎてあやしいのだが radrailsの技術者がaptanaに引き抜かれたけど、 IDEの開発じゃなくて別の仕事に割り当てられてるって 以前どこかのサイトで見たぞ。
253 名前:nobodyさん mailto:sage [2011/01/30(日) 21:04:11 ID:???] javaならともかく、rubyでeclipseのようなIDEを使う必要性を感じないのだが。
254 名前:nobodyさん [2011/01/30(日) 23:13:14 ID:APKrEmun] まー、だからこそOracleが手を引いたんだろうね。
255 名前:nobodyさん mailto:sage [2011/01/31(月) 03:41:59 ID:???] また使ってもないやつの妄想意見かよ
256 名前:nobodyさん [2011/01/31(月) 08:46:15 ID:Rhe/MGsR] 一次ソースくらい見ればいいのに netbeans.org/community/news/show/1507.html based on existing low usage trends we are unable to justify the continued allocation of resources to support the feature.
257 名前:nobodyさん mailto:sage [2011/01/31(月) 09:05:55 ID:???] なんか勘違いしてないか?
258 名前:nobodyさん mailto:sage [2011/01/31(月) 10:58:50 ID:???] <%= link_to @post.title @post %> これを <%= link_to @post %> と書けるヘルパーありませんか?
259 名前:nobodyさん mailto:sage [2011/01/31(月) 11:43:09 ID:???] これはひどい。自分で作っても1分で完成だろ
260 名前:nobodyさん mailto:sage [2011/01/31(月) 13:50:56 ID:???] #model def link_text self[:title] || self[:name] end #helper def link(obj) link_to obj.link_text, obj end
261 名前:nobodyさん [2011/02/01(火) 00:24:55 ID:yP2kD8Vl] railsとなんらかのDBで在庫管理をしたいんだけど 参考になりそうなサンプルないでしょうか
262 名前:nobodyさん [2011/02/01(火) 11:25:53 ID:lrZ+99HC] Syntax Highlight ruby-toolbox.com/categories/syntax_highlighting.html CRM Apps ruby-toolbox.com/categories/crm_apps.html E-Commerce ruby-toolbox.com/categories/e_commerce.html
263 名前:nobodyさん mailto:sage [2011/02/01(火) 18:28:26 ID:???] 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さん [2011/02/01(火) 18:53:45 ID:gX/bMisP] allはスコープ連鎖(ActiveRecord::Relation)を返さないので、付けるなら最後。
265 名前:nobodyさん mailto:sage [2011/02/01(火) 20:27:21 ID:???] スコープをインスタンスメソッドとしての意味がわからねえ。。。 ちなみにallが返すのはArrayな。
266 名前:nobodyさん mailto:sage [2011/02/01(火) 21:51:18 ID:???] 絞り込み条件をIF文の結果次第で追加するとかなら 十分意味があると思う
267 名前:nobodyさん mailto:sage [2011/02/01(火) 22:20:26 ID:???] >>263 じゃないけど、上記のような単純なケースだと述語として使い回したいと 思うことはある。 User#male? とか別途用意するの面倒。
268 名前:nobodyさん [2011/02/01(火) 22:27:21 ID:ikyFKs3w] >>263 u はUserのインスタンスの配列であってUserのインスタンスではないぞ。
269 名前:nobodyさん mailto:sage [2011/02/01(火) 22:31:18 ID:???] User.where('18 > ?', :age).male 普通にできるけど^^;
270 名前:nobodyさん [2011/02/01(火) 22:35:51 ID:ikyFKs3w] そりゃ、問題は all だもの。
271 名前:nobodyさん mailto:sage [2011/02/02(水) 02:35:39 ID:???] こんにちは失礼します。 Railsを1週間ほど前から使い始めました。 初級者本を読んで何とか自分でTODOアプリ的なものを作れるようになりました。
272 名前:nobodyさん mailto:sage [2011/02/02(水) 05:41:57 ID:???] 公開しる
273 名前:nobodyさん mailto:sage [2011/02/02(水) 20:30:41 ID:???] 亀レスだけど >>256 は able と unableを見間違えたのか?
274 名前:nobodyさん [2011/02/02(水) 22:16:10 ID:QKkorMRK] >>273 ??
275 名前:nobodyさん mailto:sage [2011/02/03(木) 08:46:30 ID:???] >>269 > User.where('18 > ?', :age).male > > 普通にできるけど^^; クラスメソッドとインスタンスメソッドを 混同しているようだ。
276 名前:nobodyさん mailto:sage [2011/02/03(木) 20:50:46 ID:???] 269は266へのレスだろう
277 名前:nobodyさん mailto:sage [2011/02/03(木) 21:36:49 ID:???] どう考えても違うだろ
278 名前:nobodyさん mailto:sage [2011/02/04(金) 02:35:49 ID:???] TALみたいなテンプレートエンジンってないですか? デザイナーさんとの協業が大変すぎるので いい方法を探してます。