- 1 名前:nobodyさん mailto:sage [2011/11/04(金) 17:06:24.32 ID:???]
- ■前
【Ruby】Ruby on Rails Part12 hibari.2ch.net/test/read.cgi/php/1311050686/ ■参考サイト <英語> 本家:rubyonrails.org API document:api.rubyonrails.com/ 開発者のblog:weblog.rubyonrails.org/ 参考wiki:wiki.rubyonrails.org/rails ruby-toolbox.com/ rubygems.org/ agilewebdevelopment.com/plugins/top_rated <日本語> Rails' wiki: wiki.fdiary.net/rails/ twitter.com/dhh www.loudthinking.com/
- 602 名前:nobodyさん [2012/01/11(水) 16:49:24.17 ID:Q415Wjs8]
- 「ようこそ●●さん」の●●以外が固定みたいなありがち例なら、
可変部分だけAJAXで引っ張ってくるという手もある。
- 603 名前:nobodyさん mailto:sage [2012/01/11(水) 16:59:43.66 ID:???]
- 俺はもうキャッシュを優先して
セッションに依存するページとそうでないページを明確に分けるようにして できるだけセッションに触れないにしてるな AJAXは結局アプリケーションにRPCするから 静的ファイルだけに比べるとかなりコストが高くなるんだよね
- 604 名前:nobodyさん mailto:sage [2012/01/11(水) 17:06:33.58 ID:???]
- シンプルな認証機能に管理者権限を持たせるrole機能を追加したいと思い調べたところ
restful_authenticationにrole_requirementというプラグインを使うといいとでたのでインストールしたいのですがもしかして現在はもう入手できませんか?
- 605 名前:nobodyさん [2012/01/11(水) 17:13:02.30 ID:Q415Wjs8]
- 「プラグインを使う」という時点で記事が古いからなー。
https://www.ruby-toolbox.com/search?q=authorization ここで人気のありそうなのに対する言及をひととおりぐぐってみてはどうか。
- 606 名前:nobodyさん mailto:sage [2012/01/11(水) 17:40:27.75 ID:???]
- ありがとうございます
rails2.3から脱出できないので古くてもいっぱいでてきたresethul_authenticationで頑張ってましたが、やっぱり新しいほうがいいんですかね・・・ とりあえずdeviceとacl9あたりがメジャーっぽいのでその辺も見てみます
- 607 名前:nobodyさん mailto:sage [2012/01/12(木) 08:41:17.11 ID:???]
- >>602
ユーザ名(ニックネーム)ならクッキーに入れといてjavascriptで表示すればいいじゃん
- 608 名前:nobodyさん [2012/01/12(木) 09:24:00.86 ID:4XFS90f0]
- いや、フラグメントキャッシュ以外にも手はあるよ、という話なわけで。
- 609 名前:nobodyさん mailto:sage [2012/01/12(木) 12:00:55.71 ID:???]
- >>598ですが、皆様色々なご意見ありがとうございます。
具体的には以下の現象で困っています。 今作成中のwebアプリでログイン認証があり、 1.ログアウト後に表示されるページA(キャッシュされるページ)に「ログアウトしました」という文言を表示させています。 2.再びログインし、ページBに行きます。 3.そしてページA飛ぶと、ログインしているのもかかわらず「ログアウトしました」という文言が表示されてしまいます。 これは上記1でページAをキャッシュした際、「ログアウトしました」という文言もキャッシュに含まれているからだと思います。 自分のイメージ的には、ページキャッシュで、 キャッシュに含めたくない部分を何らかのタグ(タグじゃないかもしれませんが)で囲い、 その囲った部分はキャッシュに出力されない。というようなことがもし可能なら、簡単なのだけれど・・・と思っています。 このような処理は可能なのでしょうか?
- 610 名前:nobodyさん mailto:sage [2012/01/12(木) 13:23:10.17 ID:???]
- そもそもキャッシュはユーザごとじゃないから最初にアクセスした
ユーザのデータでキャッシュが出来て後から来た人に情報駄々漏れになるよ
- 611 名前:nobodyさん mailto:sage [2012/01/12(木) 13:53:35.68 ID:???]
- 動的な情報を出すページをキャッシュするという発想がそもそも違うのでは
- 612 名前:nobodyさん mailto:sage [2012/01/12(木) 14:33:36.78 ID:???]
- そもそもキャッシュの問題で特定できてるの?
キャッシュ切ったら正常に動作するの?
- 613 名前:nobodyさん mailto:sage [2012/01/12(木) 18:40:36.77 ID:???]
- >>598です。
>>610 キャッシュするページは、基本的に誰に見られてもいい情報ですので、その点は大丈夫かと思われます。 「ログアウトしました」という文言さえ出なければいいのですが・・・ >>611 やはりそうなんでしょうか・・・(汗 >>612 キャッシュを切れば正常に動作します。
- 614 名前:nobodyさん mailto:sage [2012/01/13(金) 02:48:55.26 ID:???]
- api.rubyonrails.org/classes/ActionDispatch/Flash.html
- 615 名前:nobodyさん mailto:sage [2012/01/13(金) 10:19:17.07 ID:???]
- > 「ログアウトしました」という文言さえ出なければいいのですが・・・
じゃあ出すなよw
- 616 名前:nobodyさん mailto:sage [2012/01/13(金) 11:39:56.71 ID:???]
- >>615
画面上には出したいのです。 ただ、キャッシュにはその文言を含めたくないということです。
- 617 名前:nobodyさん mailto:sage [2012/01/13(金) 11:46:33.49 ID:???]
- キャッシュにごちゃごちゃ機能持たせたらキャッシュの意味ないだろ
- 618 名前:nobodyさん mailto:sage [2012/01/13(金) 11:53:00.69 ID:???]
- 素人質問で恐縮ですが、Railsって「uri」と「url」の使い分けってしてますか。
Rubyにはopen_uriというライブラリがあると聞いて、Rubyでは「uri」と「url」を使い分ける文化があるのかなと思いましたが、 Railsではどうなんだろうと思った次第です。
- 619 名前:nobodyさん mailto:sage [2012/01/13(金) 12:21:59.29 ID:???]
- >>609
>自分のイメージ的には、ページキャッシュで、 >キャッシュに含めたくない部分を何らかのタグ(タグじゃないかもしれませんが)で囲い、 >その囲った部分はキャッシュに出力されない。というようなことがもし可能なら、簡単なのだけれど・・・と思っています。 >このような処理は可能なのでしょうか? そういうやり方があってもいいと思う。 (PHPのテンプレートエンジンであるSmartyには似たような機能があったはず。) ただRailsにはなかったと思うから、キャッシュしたHTMLをさらに加工して出力する仕組みを自分でつくる必要がある。 もしくは、キャッシュにはその文言を含めず、かわりにクッキーに格納してそれをJavaScriptで出力する。
- 620 名前:nobodyさん mailto:sage [2012/01/13(金) 16:23:02.19 ID:???]
- > キャッシュにはその文言を含めたくない
キャッシュされたあとにログアウトしたときは出ないぞ
- 621 名前:初心者 [2012/01/13(金) 16:36:02.23 ID:mEqOOBY4]
- かなり基本的なことかもしれませんが、教えてください。
認証に関しての質問です。 いままで、Rails解説本を見て、自作の認証を行っていました。 POSTでユーザとパスワードを送ってもらって、認証できれば、 あとはセッションで、同一人物であることを確認する方法です。 deviseの導入を考えているのですが、 Database Authenticatable、Token Authenticatable というのは、それぞれどういうものでしょうか? (どちらのモジュールを有効にするかで悩んでいます。) 漠然とした質問ですが、ヒントでも教えてもらえないでしょうか。 よろしくお願いします。
- 622 名前:nobodyさん mailto:sage [2012/01/13(金) 16:46:09.56 ID:???]
- >>621
d.hatena.ne.jp/babie/20100729/1280381392 日本語でぐぐって一番最初にHITした記事
- 623 名前:621 mailto:sage [2012/01/13(金) 20:16:27.47 ID:???]
- single access token を理解していませんでした。
APIとしてサービスを公開するときに必要なんですね。知りませんでした。 とりあえず、ブラウザからアクセスして、認証のみ付けたいので、Database Authenticatableのみでよさそうでした。
- 624 名前:nobodyさん mailto:sage [2012/01/13(金) 21:43:02.56 ID:???]
- DBで認証して、成功したら次はsessionから。
自動ログインでcookieから。 仮登録とかメール変更なんかで token利用。
- 625 名前:nobodyさん mailto:sage [2012/01/13(金) 23:08:27.44 ID:???]
- sessionとcookieは同じだろ
- 626 名前:nobodyさん mailto:sage [2012/01/13(金) 23:41:48.48 ID:???]
- 違う。
sessionもcookie使うけど。 ログイン画面によくある「次から自動ログイン」のチェックボックスのあれは、cookieにトークン入れとく。 よくある認証プラグインでは、 login_from_cookie と login_from_session みたいな感じで分かれてる。
- 627 名前:nobodyさん mailto:sage [2012/01/14(土) 04:15:33.52 ID:???]
- 俺が勝手に考える正しいMVCの実装。モデルはデータAPI! - はかますたいる!【きょろの技的雑記】
d.hatena.ne.jp/kyoro353/20111223/1324589389
- 628 名前:nobodyさん mailto:sage [2012/01/14(土) 12:50:47.82 ID:???]
-
rails-users.jp/ python-users.jp/
- 629 名前:nobodyさん [2012/01/14(土) 15:20:38.61 ID:OUqaG7y7]
- coffeescriptで、クッキーを操作することってできるんでしょうか?
javascriptならできるんですけど・・・・
- 630 名前:nobodyさん [2012/01/14(土) 15:21:42.25 ID:dAISp9Jt]
- ヒント: ブラウザにはCoffeeScriptは見えていない。
- 631 名前:nobodyさん [2012/01/14(土) 15:33:13.30 ID:OUqaG7y7]
- >>630
つまり、CoffeeScriptからクッキーを参照、操作できないということでしょうか・・・?;;
- 632 名前:nobodyさん mailto:sage [2012/01/14(土) 16:07:29.03 ID:???]
- ヒント:ブラウザにはCoffeeScriptは見えていないということは、何が見えているのでしょうか?
- 633 名前:nobodyさん [2012/01/14(土) 16:19:57.74 ID:OUqaG7y7]
- >>632
HTMLとJavaScriptでしょうか?
- 634 名前:nobodyさん mailto:sage [2012/01/14(土) 17:20:17.06 ID:???]
- ようやくRailsが飲み込めてきた。
scaffoldで雛形作ってそこからいじろうとするとさっぱりだった。 scaffoldをやめたら簡単に飲み込めた。
- 635 名前:nobodyさん [2012/01/14(土) 17:22:57.80 ID:8reKjql1]
- 実際Scaffoldなんてほぼ使わないよね
- 636 名前:nobodyさん mailto:sage [2012/01/14(土) 17:25:16.34 ID:???]
- そうは言っても基本はscaffoldだよ。
scaffoldのコード少しいけてないけどな。 どちらかというと基本抑えるために読む用のコードだと思ってるので、理解できたら rails gで好きなようにしたら良いと思う。
- 637 名前:nobodyさん [2012/01/14(土) 17:55:40.03 ID:MzyBrOAB]
- 同じ問題にぶつかっている方がいないかと思いまして。。。
Ruby1.8.7 + Rails 3.0 で運用していたシステムの、Ruby側のVersionを 1.9.2 に上げることになりました。 通常の string型のカラムは問題はないのですが、 ActiveRecord のserializeカラム機能を利用した上で、HashやArrayに格納していた文字列を 表示しようとするとエラーになるようになりました。 incompatible character encodings: UTF-8 and ASCII-8BIT 要は、1.9以降は文字列がエンコード情報を持つようになったために起こっている問題です。 最悪、全てのレコードを精査して、 DBデータの再構築(全ての対象データを String.toutf8 して再保存する) をするしかないのかなと思っていますが、もっとスマートな解決策を知っている方はいませんでしょうか。
- 638 名前:nobodyさん mailto:sage [2012/01/14(土) 18:11:41.19 ID:???]
- scaffold は自分でジェネレータ作ればなんぼかましになる
- 639 名前:nobodyさん mailto:sage [2012/01/14(土) 18:30:48.88 ID:???]
- >>637
ちゃんと日本語を含んだコメントやコードのある .rb ファイルは、先頭にマジックコメントが付いてるんだろうな? # coding: utf-8
- 640 名前:nobodyさん mailto:sage [2012/01/14(土) 18:39:21.60 ID:???]
- CoffeeScriptでページ読み込み時の処理をさせたいけど、うまくいきません。。。
たとえば、ページAとページBがあるとします。 そしてページBのCoffeeScriptに以下のコードを書きました。 ---------------------------------- $ -> $(document) .ready -> alert "onload" ---------------------------------- すると「onload」というメッセージが出るのですが、これがページAを表示したときにも出てしまいます。 理想としては、ページBで読み込み完了した時のみ、「onload」のメッセージが出てほしいのですが、どうしたらよいのでしょうか? ググってもあまり情報がなく、皆目見当がつかない状態です。 分かる方がおられましたら、どうかお願いします。
- 641 名前:nobodyさん mailto:sage [2012/01/14(土) 18:41:45.51 ID:???]
- >>640です。
すみません、CoffeeScriptのソース部分で、スペースが削られてしまいました。 改めて以下に書きます。 $ -> $(document) .ready -> alert "onload"
- 642 名前:nobodyさん mailto:sage [2012/01/14(土) 19:03:20.62 ID:???]
- むりせずjsで書けばw
- 643 名前:nobodyさん [2012/01/14(土) 19:23:00.89 ID:dAISp9Jt]
- どのファイルに書いたんだよ。
- 644 名前:nobodyさん mailto:sage [2012/01/14(土) 19:25:00.99 ID:???]
- >>643
ページBのcoffeeファイルに書きました。
- 645 名前:nobodyさん [2012/01/14(土) 19:30:56.72 ID:BK0/OR0A]
- app/assets/javascripts/application.js に
//= require_tree . と書いてある以上、app/assets/javascripts の下に置いたら 全部まとめて1つのファイルになって、全ページで読み込まれる。 ページのURLとか、bodyのidとかで、動作対象ページと判断がつく場合だけ 動くように書けばいいんじゃないの? あと、 jQuery では $(callback) が $(document).ready(callback) と同義なので、 $-> alert('onload') でよいと思う。
- 646 名前:nobodyさん mailto:sage [2012/01/14(土) 19:35:16.16 ID:???]
- >>639
返答有り難うございます。 それがerbファイルの中で利用している部分なのです。 erbファイルに <% # -*- coding: utf-8 -*- %> を書くなども試してみたのですが、駄目でした。
- 647 名前:nobodyさん mailto:sage [2012/01/14(土) 19:36:04.88 ID:???]
- >>645
なるほど、全ページで読み込まれるのですね。 その点を知りませんでした。 お教えいただき、ありがとうございました。
- 648 名前:nobodyさん mailto:sage [2012/01/14(土) 20:18:11.10 ID:???]
- >>646
コントローラとかモデルとかヘルパとか、マイグレーションには日本語入ってないの?
- 649 名前:nobodyさん mailto:sage [2012/01/15(日) 01:30:43.73 ID:???]
- プログラマにとっては一人で一社ではなく、弁護士と一緒で一人で3社、4社と担当できる。
プログラマががんばって生産性が上がれば担当しているお客様をふやして給料も上がる。というビジネスモデル www.publickey1.jp/blog/11/post_191.html
- 650 名前:nobodyさん mailto:sage [2012/01/15(日) 01:41:18.63 ID:???]
- それはないわ〜
頑張って1人で何人分も仕事したら給料上がるとか
- 651 名前:nobodyさん mailto:sage [2012/01/15(日) 02:10:41.77 ID:???]
- 担当者が怪我して会社行けなくなった場合の運用とか考えてなくね?
- 652 名前:nobodyさん mailto:sage [2012/01/15(日) 03:21:32.46 ID:???]
- それってただのフリーランス
- 653 名前:nobodyさん [2012/01/15(日) 06:44:56.04 ID:SjKDw288]
- 話ぶったぎってすんません。
最近Railsを始めた初心者です。 Rails3 のActiveRecordについて質問です。 Post belongs_to :User User has_many :Posts となっており、 PostsController#indexにおいて、 respond_to do |format| format.json { render json: @posts } end という形で@postsを返す際に、Userモデルのnameを含めたいと考えました。 @posts = Post.select('posts.title,users.name').joins(:User).limit(10) としてやると、 SELECT posts.title,users.name FROM `posts` INNER JOIN `users` ON `users`.`id` = `posts`.`User_id` LIMIT 10 となり、発行されるSQL的には良いのかなと思っているのですが、 返ってくる値に利用される値はposts.title のみになってしまいます。 なんかとんでもない初歩的なところで躓いてるような気がするのですが、 いろいろ調べたり試したりしてハマってしまってます。 なにか方針やヒントなど、 諸先輩方のご教示をいただければ幸いです。
- 654 名前:nobodyさん mailto:sage [2012/01/15(日) 09:12:28.97 ID:???]
- render json: posts.json(includes: :user)
てな感じかと
- 655 名前:nobodyさん mailto:sage [2012/01/15(日) 09:33:24.49 ID:???]
- 普通に返ってくるけど。rails 3.1.3で試したら。
あと実コードは違うのかも知れないが、関連のシンボルは小文字で(:user)。
- 656 名前:nobodyさん [2012/01/15(日) 10:23:01.12 ID:nqvAfoHq]
- 普段は(jQuery使わないので)気にしていなかったんですが、
assets/javascript/application.js に書かれている //=require jquery の実体(jquery.js)はどこにあるんでしょうか? 普通は、assets/javascript以下に置いてあるのかと思うんですが、ありません。。 公式サイトなどから毎回ダウンロードするような処理が組み込まれている(?)んでしょうか。 これから、jqueryを使おうと思っていて 自分のRailsのjqueryのバージョンがどうなってるか、 メンテナンスをどうするか 実体がどこにあるかわかならいと 調べようがないなと思い、質問させてもらいました。 ご存じの方教えてください。よろしくお願いします。
- 657 名前:nobodyさん [2012/01/15(日) 12:53:44.45 ID:8bjFmpXJ]
- jquery-rails gemが持っている。
GEM_HOME/gems/jquery-rails-VER/vendor/assets/javascripts
- 658 名前:nobodyさん mailto:sage [2012/01/15(日) 15:14:06.66 ID:???]
- weblog.rubyonrails.org/2012/1/4/rails-3-2-0-rc2-has-been-released
- 659 名前:nobodyさん [2012/01/15(日) 15:42:40.18 ID:8bjFmpXJ]
- もう今日にもrcが取れそうだというのにw
- 660 名前:656 mailto:sage [2012/01/15(日) 19:15:57.19 ID:???]
- >>657
ありがとうございます。
- 661 名前:nobodyさん mailto:sage [2012/01/16(月) 12:32:09.25 ID:???]
- EC2はサーバーを停止するとデータが消える 2年以上も前の話です。。
EBS用いれば、サーバー停止 してもデータは消えない EC2はIPアドレスが毎回変わってしまう EIP(Elastic IP)を用いて固定アドレスを割り当て可能 クラウドは障害がおきると何もできない 物理DC/サーバーも障害は起こる。 クラウドの良さは、障 害からの復帰に複数の手段があり、備えておける www.slideshare.net/kentamagawa/aws-9170814 www.slideshare.net/kentamagawa/ss-8786548 www.slideshare.net/yuumi3/aws-on-rails
- 662 名前:653 mailto:sage [2012/01/16(月) 17:41:59.25 ID:???]
- >>654
>>655 ありがとうございます。 rails 3.1.3 で普通に返ってきました。(関連のシンボルは実コードも:Userになっていたので修正しました) rails console でクエリの形を色々いじくって、返り値の値をみていたのせいか、 実際にjsonとして吐き出した時と返り値が違っていたので、ちょっと混乱していました。すんません。
- 663 名前:nobodyさん [2012/01/16(月) 18:18:36.01 ID:It2/qso7]
- submitの二度押し防止で:disable_with使っているんですがクリックした後ブラウザバックするとボタンが非活性のままになっています。
元に戻すいい方法ありませんか?ちなみにfirefoxで発生します。
- 664 名前:nobodyさん mailto:sage [2012/01/16(月) 22:50:16.73 ID:???]
- >>604です
結局他の認証ツールは情報が少ないのとrailsバージョン的にresthul_authenticationを使って行くことにしました 目標はユーザー登録、ログイン、ログアウト、adminのみアクセスできるページを作ることです。 www.aise.ics.saitama-u.ac.jp/~gotoh/NetBeansWithRestfulAuthentication.html こちらのサイトを参考に、メール認証機能、パスワード変更機能、パスワード忘れ機能を省いて行く事に挑戦しようと考えました mail.rb以降を飛ばしてpermissionの生成に移り、その他必要のなさそうな機能追加を無視して進めています users_controller.rbのcreateやupdateをどうするべきかわからないのでアドバイスをもらえないでしょうか 環境は上記サイトとほぼ同じでsqliteでなくmysqlを使っています またresthul_authenticationはプラグインでなくgemでインストールしました
- 665 名前:nobodyさん mailto:sage [2012/01/16(月) 23:50:09.16 ID:???]
- なんかもう自分で自分のレスを見ていやになる・・・
すいません、>>664の質問はスルーでお願いします もう時間もないのでアクセスできるコンピューターを限定して管理ページにだけ単純な認証機能をのせることで代用したいと思います アクセス制限はapacheで公開するときに簡単に設定できるみたいですし・・・ スレ汚しすいませんでした
- 666 名前:nobodyさん mailto:sage [2012/01/17(火) 00:06:10.11 ID:???]
- Deviseなら情報腐るほどあると思うけど…。
権限はcancanでも使えばいいし。
- 667 名前:nobodyさん [2012/01/17(火) 10:45:36.97 ID:xcCT9DhO]
- マスタ/スレーブの冗長化の基本は4台1セット
d.hatena.ne.jp/uncafe/20110919 データベースのレプリケーション(複製)では、slaveに最低3台のサーバを適用している。 jibun.atmarkit.co.jp/ad/comp/112mitsu/01.html
- 668 名前:nobodyさん [2012/01/17(火) 10:51:58.18 ID:46QLTXdT]
- 2012年1月は、C#がC++を抜いて3位につけたことが特に注目される。C++は長期に渡って
緩やかな下落傾向にある一方で、C#は上昇傾向が続いており、特にここ数年は上昇傾 向が強くなっている。 今後しばらくは、C#とC++で順位の入れ替えを繰り返すものと見られるが、最終的には C#が3位、C++が4位に落ち着く可能性が高い。また、Objective-Cも急成長を続けており、 この傾向が続いた場合には、C#、Objective-C、C++という順位に変わっていく可能性もある。 上記のほか20位以内に入ったプログラミング言語としては、Rが19位に、Luaが20位に 入った点が注目される。 特に、統計処理や統計データのグラフィック化などに利用されるRプログラミング言語は、 ここのところ注目が高まっている。Rの機能拡張が、Googleの支援によって実現したこと などもその一因となっているものとみられる。 1 Java 17.479 (-0.082) 18ヵ月連続1位 2 C 16.976 (-0.081) 3 C# 8.781 (+0.576) 3位へ浮上。上昇傾向 4 C++. 8.063 (-0.189) 4位へ下落 5 Objective-C 6.919 (+0.114) 上昇傾向 6 PHP 5.710 (-0.291) 下落傾向 7 (Visual)Basic 4.531 (-0.226) 8 Python. 3.218 (-0.274) 9 Perl. 2.773 (+0.301) 10 JavaScript 2.322 (+0.123) 11 Delphi 1.576 (+0.331) 12 Ruby. 1.441 (-0.053) news.mynavi.jp/news/2012/01/12/058/
- 669 名前:nobodyさん mailto:sage [2012/01/17(火) 13:37:22.61 ID:???]
- CoffeeScriptの中で、RailsRootのパスを取得することってできるのでしょうか?
- 670 名前:nobodyさん mailto:sage [2012/01/17(火) 14:14:16.72 ID:???]
- そんなのが必要になってる時点で何かおかしい。
どうしても必要ならコントローラから渡したり、erbにして取ったりはできる。
- 671 名前:nobodyさん mailto:sage [2012/01/17(火) 15:19:16.77 ID:???]
- >>669です。
>>670 「erbにして取る」と言いますと、どういうことでしょうか?
- 672 名前:nobodyさん mailto:sage [2012/01/17(火) 19:06:28.60 ID:???]
- それくらいはググれ
- 673 名前:nobodyさん mailto:sage [2012/01/18(水) 13:43:28.80 ID:???]
- すみません,質問させてください.
Railsで作成したプログラムからテーブルの列を変更することはできますか? ユーザー側からテーブルの変更をできるようにしたいです.
- 674 名前:nobodyさん mailto:sage [2012/01/18(水) 14:11:45.08 ID:???]
- できなくはないけど、あまりやらない。
migrationと齟齬出るし。 使ってるものによっては、アプリサーバの再起動も要る。 ある人が列消したりしたら、同時に使ってる人はエラーになる。 おとなしくphp*admin使えば?
- 675 名前:nobodyさん mailto:sage [2012/01/18(水) 14:15:42.32 ID:???]
- 住所録的なの作ってて,ユーザー側から項目追加できるようにしたいんですよね.
やっぱりmigrationで毎回保守してる人が回さないとダメかー
- 676 名前:nobodyさん mailto:sage [2012/01/18(水) 14:23:30.56 ID:???]
- それはデータの持たせ方による。
あらかじめ多めにカラム取っておくとか。 一部のデータはjsonにしてtextのカラムに入れるとか。 検索必要ならviewみたいなの用意しとくとか。 住所録ならそんなに増えないでしょ。
- 677 名前:nobodyさん mailto:sage [2012/01/18(水) 14:32:14.43 ID:???]
- 今考えている代替案は,人名とフリガナだけ持ったモデル作って,has_manyで
項目ごとに独立したモデルを作る方法です. [User] name:string furigana:string [Attr] attrname:string attrdata:string user_id:integer な感じです. で,別途AttrInfoモデルってのを作って項目の管理をする. [AttrInfo] attrname:string 正しいモデル図の書き方忘れちゃったから説明下手かもしれないですが, そんな感じで子モデルとして項目を独立させる方法が楽かなぁと. 項目もフレキシブルな感じのほうがいいので.. 今は,一つのフォームで複数の子モデル作成するとこで詰まってます.
- 678 名前:nobodyさん mailto:sage [2012/01/18(水) 14:43:48.36 ID:???]
- nested_attributes_for で
- 679 名前:nobodyさん mailto:sage [2012/01/18(水) 15:22:08.27 ID:???]
- くわしく知らないけどMongoDB向きなんじゃないの?
- 680 名前:nobodyさん mailto:sage [2012/01/18(水) 16:18:35.88 ID:???]
- >>678
Thx.できました! >>679 MongoDBまだ理解してないですが,今回はユーザーが DB操作せずに項目の増減できるようにしたいのでこんな感じになってます.
- 681 名前:nobodyさん [2012/01/18(水) 22:57:41.69 ID:NIE7IPJ6]
- rails3.1でherokuにあげたら、Application Errorになる。なぜ?
- 682 名前:nobodyさん mailto:sage [2012/01/18(水) 23:24:43.83 ID:???]
- asset pipeline周りでは。コンパイルしてる?
- 683 名前:nobodyさん mailto:sage [2012/01/19(木) 06:35:32.69 ID:???]
- Heroku | Dev Center | Rails 3.1 on Heroku Cedar
devcenter.heroku.com/articles/rails31_heroku_cedar RAILS_ENV=production bundle exec rake assets:precompile
- 684 名前:nobodyさん mailto:sage [2012/01/19(木) 12:55:11.04 ID:???]
- >>681
ログには何と?
- 685 名前:nobodyさん [2012/01/19(木) 19:03:02.74 ID:kCr+nbf2]
- rails 3.0のEoLが何時までなのか調べても見当たらんのだが何時までなの?
- 686 名前:nobodyさん [2012/01/20(金) 01:48:49.34 ID:Bqw4Dvtw]
- Controllerからviewで使うヘルパー類をエラー吐かずに使う方法ってありますか?
html_escapeとかはERB::Util.で行けるけど image_tagとかそこらへんが使えなくて困ってます include AssetTagHelperで行けるのかと思ったけど見つかりませんと言われるし
- 687 名前:nobodyさん mailto:sage [2012/01/20(金) 07:40:20.22 ID:???]
- なんでそんな事したいの?
viewを使いたくない理由とは
- 688 名前:nobodyさん [2012/01/20(金) 09:40:22.52 ID:6rMlMhcM]
- >>687
Viewを使いたくないのではなくて、負荷を軽減するために 予めHTMLに変換してしまってDBに保存したいです
- 689 名前:nobodyさん mailto:sage [2012/01/20(金) 10:25:14.23 ID:???]
- それだとDBの負荷が上がるのでは。
Railsのキャッシュ使うのはダメなの?
- 690 名前:nobodyさん mailto:sage [2012/01/20(金) 10:47:01.04 ID:???]
- >>688
どう考えてもページキャッシュしたほうが負荷が低いな
- 691 名前:nobodyさん [2012/01/20(金) 10:57:41.22 ID:6rMlMhcM]
- >>689,690
言うなれば2chの掲示板みたいな機能でして URLや画像をタグ化した状態で保存したいです DB負荷を避けるために一定条件でDat落ちさせ 後ほどそれをテキストファイルに書きこんでdat化する作業もあるので結果的に楽なのです………
- 692 名前:nobodyさん [2012/01/20(金) 15:06:46.25 ID:0HmqnXsV]
- moduleなんだからincludeすりゃ使えるだろ
- 693 名前:nobodyさん mailto:sage [2012/01/20(金) 19:37:05.84 ID:???]
- >>691
ページキャッシュやフラグメントキャッシュがタグ化した状態で保存する機能なのだが キャッシュのこと知らないで書いてるだろ
- 694 名前:nobodyさん mailto:age [2012/01/21(土) 02:32:19.08 ID:???]
- 3.2リリースage
Agile Web development with Rails のebookも更新されとる。
- 695 名前:nobodyさん [2012/01/21(土) 05:46:25.13 ID:vuwYpWFi]
- Riding Rails: Rails 3.2.0: Faster dev mode & routing, explain queries, tagged logger, store
weblog.rubyonrails.org/2012/1/20/rails-3-2-0-faster-dev-mode-routing-explain-queries-tagged-logger-store https://twitter.com/#!/dhh/status/160412306537328640
- 696 名前:nobodyさん [2012/01/21(土) 09:23:29.82 ID:rw9MCCDR]
- >>692
申し訳ありません、どれをIncludeすればいけますか? 先程書いたとおりassetHelperでは無理でした >>693 ページキャッシュはしってますよ でも、ページキャッシュではなくDBに保存しなければならないのです そういう仕様なのでそう作らないと怒られるのですよー 他にも escape_javascriptをcontroller内で使いたいとか色々あると思うんです
- 697 名前:nobodyさん mailto:sage [2012/01/21(土) 09:29:06.70 ID:???]
- そんなレールから外れるような仕様は糞だ!って進退伺と一緒に稟議書あげろ。
- 698 名前:nobodyさん mailto:sage [2012/01/21(土) 09:38:50.70 ID:???]
- >>696
ページキャッシュで出来るHTMLをDBに入れればいいんじゃないの?
- 699 名前:nobodyさん mailto:age [2012/01/21(土) 09:41:24.26 ID:???]
- cache_store をデータベースにしてreadでもwriteでもすればいいんじゃない?
ActiveSupport::Cache::Store を継承して要求しようにあったストアを作る。
- 700 名前:nobodyさん mailto:sage [2012/01/21(土) 09:44:14.53 ID:???]
- https://github.com/mperham/dalli
devcenter.heroku.com/articles/memcache
- 701 名前:nobodyさん mailto:sage [2012/01/21(土) 09:47:01.40 ID:???]
- gem install dalli
require 'dalli' dc = Dalli::Client.new('localhost:11211') dc.set('abc', 123) value = dc.get('abc')
- 702 名前:nobodyさん mailto:sage [2012/01/21(土) 09:56:31.70 ID:???]
- >>696
全然センス無いクソ仕様だな。 DB重くなるだけじゃん。 ページキャッシュの方が速いし軽い。
- 703 名前:nobodyさん [2012/01/21(土) 23:00:45.95 ID:vuwYpWFi]
- www.onas.asia/home/kwansaiit/doc/
www.onas.asia/home/kwansaiit/doc/Kwansai-IT-Benkyo-Enkai_2012-01-13-Shimoji.pdf rubyの全くあたらしいフレームワーク atnd.org/events/24013
- 704 名前:nobodyさん [2012/01/21(土) 23:03:51.32 ID:vuwYpWFi]
- <オープンソース Rubyフレームワークのご紹介>
kwansaiit.blogspot.com/2012/01/2012-01-1314it.html
- 705 名前:nobodyさん mailto:sage [2012/01/22(日) 00:32:20.37 ID:???]
- rubyしてる人って、新しい情報をドヤ顔で共有したがる傾向が強いよね
- 706 名前:nobodyさん mailto:sage [2012/01/22(日) 00:58:43.15 ID:???]
- みんな使ってるのはApache?
すごい重いんだけどおすすめなにかない?
- 707 名前:nobodyさん mailto:sage [2012/01/22(日) 01:22:57.72 ID:???]
- それだけでは判断できんわ。
メモリの量とかCPUとかディスクにもよるし。 メモリの使い具合にも、SQLにもよるし。
- 708 名前:nobodyさん mailto:sage [2012/01/22(日) 02:05:42.97 ID:???]
- >>705
rubyの方は極めて保守的だと思うよ。 Railsはそういう傾向あり。
- 709 名前:nobodyさん mailto:sage [2012/01/22(日) 06:31:01.16 ID:???]
- >>707
CPUは常時50%くらい メモリも常に1Gは余ってる(4GB) IOもそんなに多くない でも、めっちゃ重いんだ
- 710 名前:nobodyさん mailto:sage [2012/01/22(日) 09:25:06.68 ID:???]
- 必要なとこにindex張ってないとか
- 711 名前:nobodyさん [2012/01/22(日) 10:44:06.70 ID:sE8mL0/v]
- モデルに
rails generate migrate add_カラム名_to_テーブル名 カラム名:型 って書くと思うんですが、 カラム名の中にアンダーバーを使いたい場合はどう書けばいいのでしょうか?
- 712 名前:nobodyさん mailto:sage [2012/01/22(日) 11:54:22.60 ID:???]
- 711です。
アンダーバーを使わずcamel caseで書けばいいのですね、 おさわがせしました。
- 713 名前:nobodyさん mailto:sage [2012/01/22(日) 12:47:08.93 ID:???]
- >>708
rubyはバージョン間の互換性が凄く低い とてもじゃないけど、保守的とは思えない 学生の文化祭ノリで言語作ってるから性質が悪い
- 714 名前:nobodyさん mailto:sage [2012/01/22(日) 12:55:48.13 ID:???]
- >>705
前向きに言い換えよう 新しい情報をドヤ顔で共有する勇気!
- 715 名前:nobodyさん mailto:sage [2012/01/22(日) 13:06:10.63 ID:???]
- >>713
それは感じた事ないな。 1.8系と1.9系は中身かなり違うが、書く分には対した違いではない。 遥か昔の1.4とかに比べても、そんなに変わってないと思う。1.6辺りからだと尚更。 MLに「こうしたら?」みたいな提案はよくあるけど、かなりの確率でmatzにリジェクトされてる。 昔はserializeしたデータにバージョン間で互換性がなくて実質使えなかったが、そういうのも聞かなくなった。 学生ノリはPHPとかスゴいよね。 関数名のアンダーバーをバージョン上がる毎に付けたり取ったり。
- 716 名前:nobodyさん mailto:sage [2012/01/22(日) 13:13:09.46 ID:???]
- Railsの変化は速すぎ。
枯れてから使おうとか考えてる人には合わない。 仕事でもプロジェクト開始後にバージョン上げたりするし。 もちろんテストがあればこそできる話。
- 717 名前:nobodyさん [2012/01/22(日) 13:24:18.85 ID:sE8mL0/v]
- yml-mode.elってどこにありますか?
yaml-mode.clouder.jp/ ここみてもみあたらないんですが・・・・
- 718 名前:nobodyさん [2012/01/22(日) 13:25:30.57 ID:sE8mL0/v]
- すみません。elispのとこにありました
- 719 名前:nobodyさん mailto:sage [2012/01/22(日) 13:27:49.79 ID:???]
- Rails の Symbol#to_proc がrubyに入った時はビックリしたわ。
新しい流れだなと。
- 720 名前:nobodyさん [2012/01/22(日) 13:33:23.09 ID:kpA61za+]
- "Ruby"じゃなくて"Rails"の互換性ってどうなの?
Rails1.2からRails3.1に移植したら大変かな?
- 721 名前:nobodyさん mailto:sage [2012/01/22(日) 13:45:54.13 ID:???]
- >>715
PHPはとってつけたような関数が多すぎるのがな。
- 722 名前:nobodyさん mailto:sage [2012/01/22(日) 13:46:36.87 ID:???]
- >>720
かなり大変。 2系から3系で結構苦労した。
- 723 名前:nobodyさん mailto:sage [2012/01/22(日) 13:53:49.66 ID:???]
- >>720
無茶苦茶大変。 DBだけ残して新しく作る方が楽かも。 もしくはDBも新しくして、移行プログラム走らせるとか。 habtmみたいな、もう誰も使ってないのが使われてそう。 いずれにしろスキル要るし、1系から3系まで知ってる人はそんなに居ない。
- 724 名前:720 mailto:sage [2012/01/22(日) 14:04:05.41 ID:???]
- >>722-723
うわ、ありがとう じゃ、覚悟しとくわ まず一度移植にトライしてみて ダメだったら1から新しく作るわ
- 725 名前:nobodyさん mailto:age [2012/01/22(日) 15:20:26.03 ID:???]
- 1から3まで全部知ってる人を見つけたからって移植を頼むなよ。絶対に頼むなよ。
- 726 名前:720 mailto:sage [2012/01/22(日) 16:54:14.92 ID:???]
- あ、今Wiki見て知ったけど、
昨日1月20日に最新版Rails3.2出たんだな >>725 ということで、Rails1.2からRails3.2への移植でおながいします
- 727 名前:nobodyさん mailto:sage [2012/01/22(日) 17:12:54.33 ID:???]
- どうやったら行けるかね。
もうrake rails:updateとか無理だから、 新しく3.2でプロジェクト作る。 app/ とかを古い方から持ってくる。もしくは新しい方から、Gemfile や config周り持って行く。 routes 移植。 プラグイン周りとか移植。 最後のは移植しないで、例えば新しいプラグイン入れて、認証のencryptのとこだけ差し替えるとか。 どちらにせよ、茨の道。
- 728 名前:nobodyさん mailto:sage [2012/01/22(日) 19:09:32.81 ID:???]
- https://github.com/goncalossilva/rails3_acts_as_paranoid
- 729 名前:nobodyさん mailto:sage [2012/01/22(日) 19:58:58.08 ID:???]
- そんなに移植って大変かなあ?
具体的にどの辺りが大変だったのか参考までに聞きたい Ajax周りは3系でガラッと変わったから面倒だったけど
- 730 名前:nobodyさん mailto:sage [2012/01/22(日) 22:21:01.46 ID:???]
- Railsで、同じURLに対して、
・ブラウザでの通常のアクセスと ・JavaScriptとかでやってくるAPI的なアクセス をコントローラ側で区別したい場合、どういうふうにするんでしょうか。 (a) Acceptヘッダーを見るのか、 (b) 独自にX-FooBarヘッダーをつけるのか (c) *.jsonや*.xmlへのアクセスはAPIと見なすのか よろしくお願いします。
- 731 名前:nobodyさん mailto:sage [2012/01/22(日) 22:31:37.18 ID:???]
- params[:format]
- 732 名前:nobodyさん mailto:sage [2012/01/22(日) 22:41:09.29 ID:???]
- 自分は(c)でやってる。
(a)とか(b)だと使いまわしが面倒じゃない?
- 733 名前:nobodyさん mailto:age [2012/01/22(日) 23:19:32.46 ID:???]
- 要求仕様によるけど、 xhr? で間に合うケースもあるかもね。
- 734 名前:720 mailto:sage [2012/01/23(月) 00:46:09.88 ID:???]
- >>727 (>>729)
どうもぉ〜 さっき本屋で立ち読みしてきたけど Rails3.1の仕様もそ〜んなに変わってるようには見えなかった でも、rhtml → erbまで違うとはね・・・ ま、多分、コンテンツになる部分だけ残して あとは全部Rails3.2で作ることになりそう インフル罹ったみたいなんで寝ますわ・・・
- 735 名前:nobodyさん mailto:sage [2012/01/23(月) 01:30:53.30 ID:???]
- >>730
APIとブラウザの違いというか、返すデータの種類が違うなら UAではなく求められているデータの種類で分けるべきでは 要求されてるものがブラウザがHTMLでAPIがjsonやXMLなら :formatが違うから(そのようにするべきだろう) 単にrespond_toで分ければいいだけだろ
- 736 名前:nobodyさん mailto:sage [2012/01/23(月) 02:34:29.77 ID:???]
- >>735
返すデータの種類を、拡張子で判断するよりも、Acceptヘッダーを見るほうが、本来は正しいあり方なんじゃないでしょうか。 /foo/bar/123 /foo/bar/123.html /foo/bar/123.xml /foo/bar/123.json これらは、ほんらいは同じリソースのはずで、単に表現形式が違うだけにすぎない。 なのに別々のURLを割り当てるのは、おかしいように思います。
- 737 名前:nobodyさん mailto:sage [2012/01/23(月) 08:24:44.75 ID:???]
- リソースにURIを割り当てるのがRESTの考え方だからねぇ。
jsonが欲しければ.jsonで取るのは自然だと思うよ。 フォーマットが違うだけだし。
- 738 名前:nobodyさん mailto:sage [2012/01/23(月) 08:30:21.94 ID:???]
- ヘッダを変える方法だと、ブラウザでの操作がしにくくなる。
- 739 名前:nobodyさん [2012/01/23(月) 09:52:44.98 ID:X3Xu6cIF]
- RESTだから。としかいいようがないな。
- 740 名前:nobodyさん mailto:sage [2012/01/23(月) 10:47:27.27 ID:???]
- Acceptは受け入れ可能なフォーマットを書くところであって要求を書く場所じゃないから
- 741 名前:nobodyさん mailto:sage [2012/01/23(月) 20:43:45.49 ID:???]
- >>737
>フォーマットが違うだけだし。 だから違うURLを使うのはおかしいって話でしょ。 表現が違ってもリソースはひとつなんだから、本来ならURLもひとつにすべき。
- 742 名前:nobodyさん mailto:sage [2012/01/23(月) 21:08:30.69 ID:???]
- じゃあAcceptで実装したらいいんじゃないの。
そこまで考えまとまってるなら別に他がどうとか気にする必要ないよ。
- 743 名前:nobodyさん [2012/01/24(火) 11:10:30.83 ID:rjvP9n7H]
- Rails3.1何ですけど
プリコンパイルを一切使わない設定って出来ませんか? CSSでクロスブラウザ対策してたりするとコンパイルこけるし 色々不便なので一切使わないようにしたいのですが
- 744 名前:nobodyさん mailto:sage [2012/01/24(火) 14:23:23.89 ID:???]
- asset pipeline使わないという事なら、config/application.rb に設定ある。
他は、 config/environments/production.rb
- 745 名前:nobodyさん mailto:sage [2012/01/24(火) 15:01:11.36 ID:???]
- /publicに置けばいいんじゃないの
それだとhelperが使えないんだっけ?
- 746 名前:nobodyさん [2012/01/24(火) 15:24:13.68 ID:R2GYQ8Ee]
- https://github.com/sferik/rails_admin
railscasts.com/episodes/284-active-admin?language=ja&view=asciicast
- 747 名前:nobodyさん [2012/01/24(火) 17:34:59.60 ID:/isHqZPr]
- railsに関する質問ってここでしてもいいんですかね?
- 748 名前:nobodyさん mailto:sage [2012/01/24(火) 17:52:55.66 ID:???]
- ダメに決まってるだろ
- 749 名前:nobodyさん [2012/01/24(火) 18:08:32.06 ID:/isHqZPr]
- >>748
そ、そんな だめなんですか 特例でおしえていただきたいんですが
- 750 名前:nobodyさん [2012/01/24(火) 18:13:03.92 ID:/isHqZPr]
- とりあえずかきこんじゃいます。
今ちいさなアプリケーションをrailsで作っているのですが、 formにメッセージを書き込む際に あわせて書いた人のユーザーid を取得したいのですが、 どこに記述してよいかわかりません。 formの一部を抜粋するとこうなってます↓ <div class="field"> <%= f.label :message %><br /> <%= f.text_area :massage %> </div> お願いいたします
- 751 名前:nobodyさん mailto:sage [2012/01/24(火) 18:14:55.52 ID:???]
- 押しが強くてワロタ
- 752 名前:nobodyさん mailto:sage [2012/01/24(火) 18:16:14.91 ID:???]
- massage エロス
あとユーザIDってのは自分で入力させるの? それともセッションかどっかに入ってるの?
- 753 名前:nobodyさん [2012/01/24(火) 18:22:49.82 ID:/isHqZPr]
- 押し強くてごめんなさいw
分からなくてすごく困ってたんですw ユーザーのidは書いているユーザー一人一人が持っていて、 <%= current_user.id %> とかけば出力されます。 理想としてはメッセージを送ると自動でuser_idもDBに送られるようにしたいです。。
- 754 名前:nobodyさん mailto:sage [2012/01/24(火) 18:54:33.22 ID:???]
- Railsでは普通、idは入力させたり、フォームから送るものではない。
セーブした時にDBから割り当てられるもの。 もし、任意のid(初心者ならこのカラム名はやめた方が良い)を入力させるなら、 重複が無いかなどを調べないといけない。
- 755 名前:nobodyさん mailto:sage [2012/01/24(火) 18:57:49.67 ID:???]
- んーと、送り主のidはフォームからは普通送らない。
コントローラで current_user.id とかやって、メッセージにセットする。
- 756 名前:nobodyさん [2012/01/24(火) 19:16:19.62 ID:/isHqZPr]
- idはuserテーブルののidをとりあえずmessageテーブルにuser_idとしてながしこみたいのです…
コントローラーでやるんですね、 ちょっといろいろためしてみます!
- 757 名前:nobodyさん [2012/01/24(火) 19:31:55.63 ID:/isHqZPr]
- 書き方がわからなかったので、フィーリングで、
コントローラーのdef createところに @message = Message.new(params[:Message]) params[:user_id] = current_user.id とかいたのですが、うまく動かず…orz
- 758 名前:nobodyさん mailto:sage [2012/01/24(火) 19:33:23.03 ID:???]
- params に渡してどうするのよ。
message に渡しなよ。 @message.user_id = current_user.id
- 759 名前:nobodyさん [2012/01/24(火) 19:38:15.04 ID:/isHqZPr]
- うおおお ちゃんと登録されました!
た、助かりました…!ありがとうございます
- 760 名前:nobodyさん mailto:sage [2012/01/25(水) 01:09:22.67 ID:???]
- そういや>>736あたりの話なんだけど、
Railsでは /foo/123 には /foo/123.xml とか /foo/123.json とか :format がつけられるじゃん? これって、コンテナリソースにはつけられるの? つまり /foo/.xml とか /foo/.json とかはできるわけ? それともコンテナリソースに対して xml や json を要求する場合はまた違う方法になるの?
- 761 名前:nobodyさん mailto:sage [2012/01/25(水) 07:42:06.57 ID:???]
- index.json
- 762 名前:nobodyさん [2012/01/25(水) 08:11:31.32 ID:CoUa4Jns]
- foos.xml とか foos.json
- 763 名前:nobodyさん mailto:sage [2012/01/25(水) 10:11:00.50 ID:???]
- config/route.rbでどうとでもできるからな
- 764 名前:nobodyさん mailto:sage [2012/01/25(水) 11:16:46.09 ID:???]
- テーブルの、あるフィールドの最大値を取得したいのですが、うまくいきません。。。
たとえばFooというテーブルのbarというフィールドの最大値を取得したいときは、以下のように書けば良いらしいのですが・・・ Foo.maximum('bar') しかしながら、こう書くと『no method error』になるのです。 こちらの環境はRuby1.9.3、Rails3.1.3です。 maximumメソッドについては、以下のサイトで見つけました。 railsdoc.com/references/maximum これによると3.1.0までは対応しているようですが、3.1.3にはもうmaximumはないということでしょうか?
- 765 名前:nobodyさん mailto:sage [2012/01/25(水) 13:21:04.50 ID:???]
- 普通に取れるけど。3.1.3と3.2.0で試した。
そのフィールド無いんじゃないの?
- 766 名前:nobodyさん [2012/01/25(水) 14:04:53.51 ID:T66svPqt]
- user
friend entry があります。 user にはstatusがあって、statusがwarningの物は友人でなくとも無条件で表示したいです entry.joins( :user => :friend ).("users.status = ? OR friends.post_user_id = ?" , "warning" , session[:user_id] ) これで取れるかと思ったのですが、users.status = ?がスルーされているのか 後のfriendの記事しか取れません joinについて何か大きな勘違いをしているのかもしれませんorz どうすればとれますか?
- 767 名前:nobodyさん mailto:sage [2012/01/25(水) 14:19:09.42 ID:???]
- >>765
すみません、説明不足でした。 正確には、ある条件でデータを絞った後で、その中でのフィールドの最大値を取得したいということなのです。 まずFooというテーブルにbar、bazという2つのフィールドがあるとします。 イメージ的には、やりたい内容は以下のようなことです。 ------------------------------------- f = Foo.find_by_bar(○○○) puts f.maximum('baz') ------------------------------------- このやり方ですと、undefined method になります。 確かに、Foo.maximum('bar')という風に、絞り込んだものに対してではなく、直接最大値を取得するやり方ならうまく取れました。 絞り込んだものに対しては、maximumは使えないのでしょうか?
- 768 名前:nobodyさん mailto:sage [2012/01/25(水) 14:54:10.77 ID:???]
- >>767です。
すみません、自己解決しました。 以下の方法で、条件を絞ったうえでの最大値を取得できました。 Foo.maximum(:bar, :conditions => {:baz => ○○○}) お騒がせしてすみませんでした;;
- 769 名前:nobodyさん [2012/01/25(水) 20:32:05.37 ID:CoUa4Jns]
- >>767
ところでFoo.find_by_barだとfはFooのインスタンス1つになるわけだが。
- 770 名前:nobodyさん mailto:sage [2012/01/25(水) 21:57:29.42 ID:???]
- railsの
model = Model.new(param[:prefix]) model.save() ってやり方は、悪意あるユーザがフォームにないパラメータを送ると 意図しない属性も変更されてしまうと思うのですが、そんなことないですか。
- 771 名前:nobodyさん mailto:sage [2012/01/25(水) 22:04:45.35 ID:???]
- mass assignできなくすれば大丈夫
- 772 名前:nobodyさん [2012/01/26(木) 05:29:31.01 ID:WYeK+tHX]
- みなさんは高速化のためにどんな方法をとってますか?
例えば、ブログなんかで 最新のコメント なーんてものがありますよね? ああいう、頻繁に更新される可能性がある一箇所のせいで結構つらい思いをすることもあります ログイン→ようこそ◯◯さん等もそうですが いくつか考えたのですが、ページキャッシュしてしまい そういった部分を全てAjax等で非同期読み込み 上でも出てたJavascriptでCookieを調べて割り振り どちらも、Rails外での話なのでどうしても面倒くささを感じてしまいます……
- 773 名前:nobodyさん [2012/01/26(木) 07:00:43.56 ID:LIf9fd2V]
- フラグメントキャッシュ使えし
ところで、フラグメントキャッシュって一定時間で破棄って出来ない? 5分で破棄したいのだけど……
- 774 名前:nobodyさん mailto:sage [2012/01/26(木) 11:45:32.46 ID:???]
- >>771
>mass assignできなくすれば大丈夫 ありがとうございます。でもこれってデフォルトでは作る側がいちいち設定する必要があるんですよね。 設定しなかった場合は、悪意あるユーザからの攻撃をいとも簡単に受けてしまう。 なんでデフォルトで禁止してないんですかね。 ttp://d.hatena.ne.jp/halflife/20081006/1223302382 > みたいにmass assignmentを使ってしまうと、entry[user_id]=1 とか適当なパラメータを送るだけで誰か他のユーザの投稿として Entry を更新することができたりするわけで。 > もちろん手を抜くなとか忘れるのが阿呆だとかはあるかもしれないけど、わたしのような初心者には結構危なく感じた。 > > なんでRailsはデフォルトでmass assignment不可にしないんだろう? > デフォルト不許可にしてしまうと、スキーマが変更されるたびに合わせて attr_accessible を修正しなきゃいけないとかDRYじゃねえよウゼーという感じなんだろうか。
- 775 名前:nobodyさん mailto:sage [2012/01/26(木) 11:55:04.00 ID:???]
- findした段階で大体防げるからなぁ。
@enty = current_user.entries.find(params[:id]) みたいに。 そう書いてないとダメだが。
- 776 名前:nobodyさん mailto:sage [2012/01/26(木) 12:28:43.36 ID:???]
- >>772
最近ならそういった情報で更新されにくいものは クライアントサイドのlocalStorageにいれてしまうってのもありだな サーバーへアクセスされないからAJAXの負荷が無い
- 777 名前:nobodyさん mailto:sage [2012/01/26(木) 16:01:35.70 ID:???]
- >>775
なんでそれで防げたことになるんですか? 今問題にしているのはcreateやupdateの話であって、findは関係ないような。
- 778 名前:nobodyさん mailto:sage [2012/01/26(木) 16:30:47.72 ID:???]
- updateの時は初めにfindするし、
createでは @entry.user_id = current_user.id するだろ。 しなければもちろん外からセットされる。プロテクトしてなければ。 Railsに限った話ではなくて、そう作ればそうなるよという事。
- 779 名前:nobodyさん mailto:sage [2012/01/26(木) 18:58:14.63 ID:???]
- >>778
もしかしてuser idのことだけ言ってますか?>>775で >findした段階で大体防げるからなぁ。 と言っているのが不思議だったんですけど、user id *だけ* みればそうかもしれません。 しかし774などで指摘していることは任意のフィールドに当てはまることであり、 「findした段階で大体防げる」ようなものではないんじゃないですか。
- 780 名前:nobodyさん [2012/01/26(木) 20:03:46.49 ID:RmSk4BIq]
- rails3.2でcsvのfixtureを読み込まなくなって
移行しようにも苦労しているのですが おすすめのcsv読み込みツールってありますか?
- 781 名前:nobodyさん mailto:sage [2012/01/27(金) 11:02:32.60 ID:???]
- > >mass assignできなくすれば大丈夫
> ありがとうございます。でもこれってデフォルトでは作る側がいちいち設定する必要があるんですよね。 > 設定しなかった場合は、悪意あるユーザからの攻撃をいとも簡単に受けてしまう。 これで終わりじゃん
- 782 名前:nobodyさん [2012/01/27(金) 14:38:18.12 ID:lH99fQFB]
- Riding Rails: Rails 3.2.1 has been released
weblog.rubyonrails.org/2012/1/26/rails-3-2-1-has-been-released
- 783 名前:nobodyさん mailto:sage [2012/01/27(金) 18:06:51.09 ID:???]
- route.rbに関しての質問です。
pages/:idの:idの部分を、ユーザの名前にしたくて困っています。 route.rbを match "'pages/:username" => "pages#show", :via => :get, :path => :name にしてrake route すると、 pages/usernameというルートしかできず… 方法ご存知な方いらっしゃいますか?
- 784 名前:nobodyさん [2012/01/27(金) 22:26:17.58 ID:50WK7S02]
- class Page
def to_param; name; end end rails c >> helper.controler = app >> app.page_path(Page.create(:name => 'foobar')) デフォルトのルーティングだと、名前であろうとパラメータ的にはあくまで :idというパラメータとして渡されてくるので、:idだがnameとして扱うこと。
- 785 名前:nobodyさん mailto:sage [2012/01/28(土) 05:39:03.61 ID:???]
- >>779
なぜわざわざ770みたいな脆弱な書き方を覚えてしまったのか それは「横着な書き方」であって脆弱なのは当たり前だし、それでもRailsにはその脆弱さを防ぐ方法がいくつも備わってる ちなみに775の言ってる事は俺も的外れだと思う
- 786 名前:nobodyさん mailto:sage [2012/01/28(土) 10:17:16.60 ID:???]
- >>785
scaffoldが foo = Foo.find(params[:id]) foo.update_attributes(params[:foo]) foo.save みたいなコードを吐く以上、それがRailsの標準的なやり方と見なされてもしょうがない。 ところで >それでもRailsにはその脆弱さを防ぐ方法がいくつも備わってる って言ってるけど、具体的にはどんな方法があるの? いくつもあるなんて知らなかった。
- 787 名前:nobodyさん mailto:sage [2012/01/28(土) 18:10:10.01 ID:???]
- >>764
このサイト知らなかったな 微妙に間違っているが、すごい解説の量だ!
- 788 名前:nobodyさん [2012/01/28(土) 20:25:27.97 ID:kusQOV3z]
- attr_accessible と attr_protected
blog.digital-squad.net/article/106792109.html Use attr_protected or we will hack you - Blog Articles - LessEverything lesseverything.com/blog/archives/2008/03/11/use-attr_protected-or-we-will-hack-you/
- 789 名前:nobodyさん [2012/01/28(土) 21:31:22.30 ID:kusQOV3z]
- attr_accessibleは、ActiveModel::MassAssignmentSecurityの機能で、
newやらupdate_attributesやらでレコードの属性を「一括設定してもよい」属性を 指定するもの。逆に「一括設定を禁止」するattr_protectedとペアで考える。 read2ch.com/r/php/1292032736/#t508
- 790 名前:nobodyさん [2012/01/28(土) 21:47:54.91 ID:kusQOV3z]
- assign_attributes
www.oiax.jp/rails/zakkan/assign_attributes.html update_attributes blog.livedoor.jp/sasata299/archives/51485638.html
- 791 名前:nobodyさん mailto:sage [2012/01/29(日) 14:01:57.04 ID:???]
- れいるず、速習のコツを教えてくだされ。
- 792 名前:nobodyさん mailto:sage [2012/01/31(火) 07:44:07.71 ID:???]
- RailsによるアジャイルWEBアプリケーション開発っていうすばらしい本が出てるからその通りにショッピングサイトを作ればオッケー
- 793 名前:nobodyさん mailto:sage [2012/01/31(火) 11:18:03.40 ID:???]
- 翻訳者宣伝乙
- 794 名前:nobodyさん mailto:sage [2012/01/31(火) 19:00:01.98 ID:???]
- >>792
で、やってる途中で新バージョンが出る
- 795 名前:nobodyさん [2012/01/31(火) 21:42:32.22 ID:J/mA32Fb]
- Rails Guidesでええやん。
- 796 名前:nobodyさん [2012/01/31(火) 22:06:34.42 ID:Nhw8SxC0]
- When I did all the programming for the original version of Basecamp back in 2003,
we ended up shipping with just about 2,000 lines of code. 37signals.com/svn/posts/3094-code-statistics-for-basecamp-next 37signalsのBasecampは米国企業上位500社の321社が利用中 ? SEO Japan www.seojapan.com/blog/37signals-and-fortune500 Ruby on Rails開発者のDavid Heinemeier Hanssonによる「起業の学校」講演! toshio.typepad.com/b3_annex/2008/04/ruby-on-railsda.html 2000人の顧客が月40ドルを12か月払えば、100万ドルになる。
- 797 名前:nobodyさん [2012/01/31(火) 22:10:27.23 ID:Nhw8SxC0]
-
Getting Real by 37signals gettingreal.37signals.com/GR_jpn.php
- 798 名前:nobodyさん [2012/01/31(火) 23:23:30.79 ID:Nhw8SxC0]
- twitter.com/#!/ike728/statuses/164164168839204865
www.sponichi.co.jp/gravure/special/ir_2010/ir_ikezawaasuka/KPhotoNormal20100731176_p.html
- 799 名前:nobodyさん mailto:sage [2012/02/01(水) 09:50:30.32 ID:???]
- ActiveRecordで取得したレコードに対してeachメソッドみたいに全カラムにループでアクセスする方法ってありますか?
Test.find(1).each do |key, value| #処理 end このような処理はできないんでしょうか?
- 800 名前:nobodyさん mailto:sage [2012/02/01(水) 10:24:09.07 ID:???]
- 自己解決しました。
attributesメソッドでハッシュが返ってきますね。
- 801 名前:nobodyさん [2012/02/01(水) 21:36:14.66 ID:MwDJMjTg]
- Twitter Bootstrapが大幅バージョンアップ!して凄まじいことに・・・ | IDEA*IDEA
www.ideaxidea.com/archives/2012/02/twitter_bootstrap_v2.html twitter.github.com/bootstrap/index.html https://github.com/twitter/bootstrap/
- 802 名前: 忍法帖【Lv=13,xxxPT】 mailto:sag [2012/02/01(水) 23:04:02.37 ID:???]
- !test
- 803 名前:nobodyさん [2012/02/02(木) 11:31:58.44 ID:ppveFy64]
- サイト重すぎてヤバイんですが、何かおぬぬめのてくにっくやとりあえずここみとけ!って対処法あります?
調べたところ データベースアクセス周りが7割くらい占めてました かるく調べたんですが めむきゃっしゆ? find_by_sql インデックスをはる あたりが王道のようですが、これでどのくらいかわるものですか?
|

|