【RoR】Ruby on Rails Part11
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/12/11(土) 10:58:56ID:???【Ruby】Ruby on Rails Part10
http://hibari.2ch.net/test/read.cgi/php/1282991262/
■参考サイト
<英語>
本家:http://rubyonrails.org
API document:http://api.rubyonrails.com/
開発者のblog:http://weblog.rubyonrails.org/
参考wiki:http://wiki.rubyonrails.org/rails
<日本語>
Rails' wiki: http://wiki.fdiary.net/rails/
http://twitter.com/dhh
http://www.loudthinking.com/
002315
2010/12/13(月) 03:08:40ID:aRjyTaj/また、== がおかしいのをとりあえず無視して ==メソッドの中身を verifyメソッドに書き足して
def verify
#self == self.request.signature
Base64.decode64(signature) == Base64.decode64(self.request.signature)
end
とすると、
#<OpenSSL::PKey::RSAError: Neither PUB key nor PRIV key:: nested asn1 error>
となりました。
追っていくと、
digestメソッドのところでえらーになっているみたいなのですが、これがまたよくわからず、
同じクラス内の digest プライベートメソッドを呼び出さず、
https://github.com/pelle/oauth/blob/master/lib/oauth/signature/rsa/sha1.rb
こちらの digest メソッドを呼び出しているようで、
#<OpenSSL::PKey::RSAError: Neither PUB key nor PRIV key:: nested asn1 error>
となります。
試しにrails consoleで
require '/home/hoge/.rvm/gems/ruby-1.9.2-p0/gems/oauth-0.4.4/lib/oauth/signature/rsa/sha1.rb'
して
(OAuth::Signature::RSA::SHA1).methods.grep /digest/
すると
[:digest_class, :digest_klass]
が返り、digestメソッドが含まれていません。
よく分からないのですが、この挙動は正しいのでしょうか。。?
全く解決できる見込みがありません。
ご教示いただけると幸いです。
0024nobodyさん
2010/12/13(月) 04:20:54ID:???どこに書くんでしょうか?
0025nobodyさん
2010/12/15(水) 02:06:31ID:???そのサイトのmixiのリンク先のページが無くなってるんだが、mixiのAPIの仕様が変わっているなんてことはないの?
あとはお約束の
http://en.lmgtfy.com/?q=Neither+PUB+key+nor+PRIV+key%3A%3A+nested+asn1+error
>>22-23
==が呼ばれていないのはよくわからないな
Railsならdevelopmentモードでファイルを編集しても再ロードされていないとかいう話ではないよな
それと動作見るなら、
Rails.logger.debug("hogehoge")
でログ取ればよいよ。loggerがdebugレベルを出力するときだけログが取られる。
0026nobodyさん
2010/12/17(金) 13:18:45ID:jG120pyfBuilding Mini Google in Ruby
http://www.slideshare.net/igrigorik/building-mini-google-in-ruby
0027nobodyさん
2010/12/18(土) 02:46:03ID:???Railsを動かすアプリケーションサーバーにもよると思うけどPassengerならできたよ
多分adsenseの広告張りたいんだよね?
PHPは別ファイルにしてpublic配下に置いて、それをViewからSSIで読み込んでやればおk
apacheでSSI関係の設定も必要
元の発想はこの辺の記事から Mongrelでも可能っぽい
http://yugui.jp/articles/642
http://yugui.jp/articles/644
0028nobodyさん
2010/12/19(日) 08:58:50ID:???0029nobodyさん
2010/12/19(日) 09:07:11ID:???0030nobodyさん
2010/12/19(日) 13:15:14ID:???public配下のphp/ad.php みたいなファイルをWebAPIに見立ててアクセス、
戻りの広告HTMLを表示する、という風にした
結局広告って最終的には素のHTML+JSになるからそれを表示出来ればいい
0034nobodyさん
2010/12/20(月) 01:13:38ID:???アドセンスだったらそのやりかたうまく行くのかな?
0035nobodyさん
2010/12/20(月) 20:00:11ID:???うちの会社なら鼻っからNGだなぁ
気持ち悪すぎる
0036nobodyさん
2010/12/20(月) 21:28:03ID:???query = params[:q].split(/\s/).map{|q| Regexp.new q rescue Regexp.new Regexp.quote(q)} if params[:q]
@posts = @posts.select{|x| query.all?{|q| x.title.match q || x.body.match q}} if params[:q]
@posts = @posts.paginate :page => params[:page], :per_page => 100
0037nobodyさん
2010/12/20(月) 21:35:01ID:???最初の@postsに100万件データが入っていても耐えられんの?
0038nobodyさん
2010/12/20(月) 21:35:59ID:???0039nobodyさん
2010/12/20(月) 21:40:18ID:???0042nobodyさん
2010/12/20(月) 22:03:31ID:???0044nobodyさん
2010/12/21(火) 00:46:04ID:???100万件と言ってるわけだが。
まあ個人作成で少数利用なら処理に1秒かかっても大丈夫だろうけど、
仕事でやられたら頭に血が上るレベルだぞ。
0045nobodyさん
2010/12/21(火) 01:06:16ID:???0047nobodyさん
2010/12/21(火) 02:01:07ID:???エンジニア同士なら、システム設計に意見する方が適切ではないかい
0048nobodyさん
2010/12/21(火) 02:25:17ID:???上で例に上げられてるのは他社の用意した広告プラットフォームでしょ
エンジニアの志向する技術とビジネスで求められる現実は乖離するのが間たり前で、それに柔軟に対応するのもエンジニアの務めだと思う
0049nobodyさん
2010/12/21(火) 09:15:01ID:???代替案も示さずに批判だけとかcgi.rbがいつまでも糞なままなのがruby界の陰湿さをよくあらわしていますよね
0050nobodyさん
2010/12/21(火) 09:59:57ID:???それに全く気づかないのは人間性の問題なんだろうな
0051nobodyさん
2010/12/21(火) 10:53:38ID:???偉そうなこと言う割にはちょっと考えられないような糞プログラムを晒してくれてるなw
0052nobodyさん
2010/12/21(火) 11:00:27ID:???0054nobodyさん
2010/12/21(火) 11:44:25ID:???自分で自分を陰湿だと言ってることに気づいてないとは
0055nobodyさん
2010/12/21(火) 15:15:03ID:???0057nobodyさん
2010/12/21(火) 17:46:09ID:???どこに書くんでしょうか?
0058nobodyさん
2010/12/21(火) 18:43:40ID:irxjcebdi18n gem ?
0059nobodyさん
2010/12/22(水) 03:49:13ID:???検索に使われるキーワードのlogを見たことありますか?
東京駅近くの病院
↑みたいに文章で検索する人とか結構多い
とにかくこっちが想定しないような検索語をどんどん送ってくるのが一般ユーザー
0060nobodyさん
2010/12/22(水) 05:09:25ID:???0062nobodyさん
2010/12/22(水) 10:23:56ID:???検索キーワードを見ていると、皆さん様々な悩みを思い思いに検索欄に入力して検索しておられますね
うちの検索欄はお悩み相談室ではないのだが・・・
006357
2010/12/22(水) 16:43:25ID:???.html.erb内に日本語書いて、それが正しく表示されるようにしたり、
フォームからの入力で日本語を入力出来るようにしたいんですが、
どうすればいいのかよく分かりません…
0064nobodyさん
2010/12/22(水) 16:51:25ID:???RubyとRailsのバージョンによって対処法が違うから書かないと
DBの設定が違ってる可能性もあるから使ってるDBも書いた方がいい
0065nobodyさん
2010/12/22(水) 19:04:19ID:???ぱっと思ったのは、MySQLとかの文字コードがlatin1のままだったり、
プログラムではUTF8なのにHTML表示がSJISだったりとか
0066nobodyさん
2010/12/24(金) 14:37:49ID:???原因がありすぎてそれだけだと絞れないな
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
006715
2010/12/26(日) 06:47:21ID:P+mR+WO/>>19
レスありがとうございます。お礼遅れてすみません。
自分が色々勘違いしていたところもあったのですが、結局まだ解決していません。
http://eblog.drecom.jp/entry/15
の
http://eblog.drecom.jp/system/data/10/9ccc25cf54.png?1290356437
に「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
となってしまいました。
何か良い方法がありましたら教えていただけますと幸いです。
006815
2010/12/26(日) 07:13:23ID:P+mR+WO/上記の通りoauth周りがまだ解決できてませんが、oauth-pluginのoauth_required
を見て、trueかfalseかで処理を分ける様なイメージです。
こういった処理は可能なのでしょうか。。
0069nobodyさん
2010/12/26(日) 09:17:54ID:???しかもソースを見てレスくれてんのに質問投げっぱなしで放置して、
分からなくなったときだけ再登場。
そんなやつが教えてもらえるわけないだろ。
007015
2010/12/26(日) 13:31:14ID:P+mR+WO/ありがとうございました。
で、25のurlで解決出来そうだと思ったので
解決してからお礼しようと思ってたのですが、結局わからなかったもので..
すみません。
0071nobodyさん
2010/12/26(日) 14:49:33ID:???とりあえず動かすだけなら↓でいけると思うが。
self.class.protect_from_forgery
0072nobodyさん
2010/12/26(日) 18:24:37ID:???0073nobodyさん
2010/12/26(日) 19:45:23ID:j7lQkci8before_filter :verify_authenticity_token, option
とほぼ同義なので、
protect_from_forgery :if => lambda {|controller| カスタム条件 }
みたいなので出来そうな気がする。あるいは
def protect_against_forgery?
カスタム条件 and super
end
でもいいような気がする。
0074nobodyさん
2010/12/26(日) 19:50:26ID:???0075nobodyさん
2010/12/26(日) 20:01:46ID:j7lQkci80077nobodyさん
2010/12/27(月) 00:11:08ID:???0078nobodyさん
2010/12/27(月) 00:50:08ID:???0079nobodyさん
2010/12/27(月) 08:27:00ID:???第3版で十分だと聞いているが。
0080nobodyさん
2010/12/27(月) 09:10:44ID:???前スレで紹介されていた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編集部: 本
http://www.amazon.co.jp/dp/4774143243/
WEB+DB PRESS vol.58 の Rails 3 / Ruby1.9.2 記事が素晴らしすぎる件 - まちゅダイアリー(2010-08-21)
http://www.machu.jp/diary/20100821.html#p01
0081nobodyさん
2010/12/27(月) 11:18:59ID:???008279
2010/12/27(月) 11:45:02ID:???0083nobodyさん
2010/12/27(月) 17:48:17ID:jyXQOLKOhttp://railstutorial.org/chapters/beginning
でいいと思う
無料だし、丁寧だし、必要なら製本・PDF・解説ビデオ買えるし
0084nobodyさん
2010/12/27(月) 19:59:32ID:???実際にアプリ作ろうとしたらその内容じゃきついよ。
アプリのモデルも二つしかないし、完全な入門用だと思う。
0085nobodyさん
2010/12/27(月) 20:22:54ID:???0086nobodyさん
2010/12/28(火) 00:24:51ID:???@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 %>
実行時にインスタンス変数を追加すれば前者でいけるのかもしれませんが、これはやはりやり過ぎでしょうか?
もっとスマートな方法があったら教えてください。
0087nobodyさん
2010/12/28(火) 00:52:09ID:???試してないけど、モデルEntryにアクセサnew_varを定義してやれば通るんじゃないの?
前者のコントローラ側コードは、
entry.new_var = ごにょごにょ
の間違いってオチ?
0088nobodyさん
2010/12/28(火) 00:55:40ID:???rvmやgitとgithubの使い方、TDDしながらの開発、herokuへのデプロイ
初心者向けの教材としていいんじゃないかと思うが、逆にすぐにやりたいことがある初心者には余計なことが多いなw
008986
2010/12/28(火) 01:36:16ID:???ありがとうございます。
前者のコードはご指摘通りentry.new_varの間違いでした。
モデルにアクセサを定義してみたら動きました。ありがとうございます。
ただ、追加する情報というのがviewによって違うため、そのたびにアクセサを定義するというのが少し現実的では無いのです。
0090nobodyさん
2010/12/28(火) 07:38:41ID:qNgO67wuこれで勝つる。
009186
2010/12/28(火) 10:30:29ID:???ありがとうございます!出来ました。
ActiveRecord::Base.instance_methods(false).grep(/\[\]/)
=> ["[]=", "[]"]
これは今回のケースのような為の便宜メソッドなのでしょうか?
あるいは他に目的があるのかな。
0092nobodyさん
2010/12/28(火) 10:41:16ID:???もともとはテーブルのデータを呼び出すのに使う
だから列名と被ると上書きされるので注意
0093nobodyさん
2010/12/28(火) 10:54:35ID:???そうみたい。
0094nobodyさん
2010/12/28(火) 12:48:06ID:???少し
009586
2010/12/28(火) 12:48:49ID:???皆様ありがとうございました。
009669
2010/12/28(火) 13:59:50ID:sIDdR5MLレスありがとうございます。
protect_from_forgery :if => lambda {|controller| カスタム条件 }
結局これでうまく行きました。ありがとうございます。
クラス○○とインスタンス○○の違いはある程度は分かっていると思うのですが、
ActionControllerに用意されている色々なメソッドがどのタイプのメソッドなのか、把握は出来ていませんでした・・
ともあれ、ありがとうございました。
OAuthの方の問題が解決しないのは変わらず悩んでます・・
もし分かる方いらっしゃいましたらご教示いただけると幸いです。
質問ばかりですみません。
0097nobodyさん
2010/12/29(水) 16:12:12ID:j8vwwBYJmod_cache でも使うの??
0098nobodyさん
2010/12/30(木) 22:08:23ID:???キャッシュされててコントローラも通らないんだからパラメタ使いようがないよね。
動的にしたい部分があればAjaxで後から追加。
0099nobodyさん
2010/12/30(木) 23:59:25ID:???mod_cache使っとけ
0100nobodyさん
2010/12/31(金) 03:04:32ID:???010197
2010/12/31(金) 09:37:44ID:???posts/1/page #index 1ページ目
posts/1/show #id=1に対するshow
0102nobodyさん
2010/12/31(金) 12:06:04ID:???activerecordとどういうところが主に違うんでしょう。
まだ全然触ってないのですが概要だけでもざ〜っと分かったらいいなぁと・・
0104nobodyさん
2011/01/01(土) 21:14:41ID:???ARは基本RDB用のみ、DMはもっと抽象化されててBigTableやNoSQLもアダプタがあればいける
あとDMはモデルでスキーマ定義必須だから、そこ見ればどんなDBかすぐわかる
ARはそこらへんわかりづらい
ARは3.0でどこまでかわってるかはよく知らない
0105nobodyさん
2011/01/01(土) 21:32:08ID:???新年早々乙
ちょっと上の方でRails3の本の話題になっていたけれども
はじめてのRuby on Rails3(I・O BOOKS)
という本はどうなんでしょう?
去年の11月出版みたい
0106nobodyさん
2011/01/01(土) 22:10:05ID:???0107102
2011/01/02(日) 03:46:53ID:???なるほど、ありがとうございます。
これからActiveRecordに変わってDataMapperが台頭していく流れなんですかねぇ。
NoSQLDB自体使いどころを選ぶみたいですが、RDBも使えるのなら両方使えてツブシが利く方がよさげですが・・
0108nobodyさん
2011/01/02(日) 04:15:28ID:???0110nobodyさん
2011/01/02(日) 16:13:37ID:???正直、どれも良くできてるんで何使っても変わんない気がするんだけど
0111nobodyさん
2011/01/02(日) 16:34:18ID:???0112nobodyさん
2011/01/02(日) 23:48:10ID:???0113nobodyさん
2011/01/03(月) 17:16:11ID:???半分以上がfind_by_sqlになったぞ
ルーティングを無闇に定義して逆にごちゃごちゃしてくるし
規約でどうこうやるのも限界を感じるわ
0114nobodyさん
2011/01/03(月) 21:40:36ID:???テーブル設計とARの使い方が間違ってる部分が多いんじゃないかと
とはいえ、find_by_sqlが必要になる場面ってちらほらあるんだよな..
0115nobodyさん
2011/01/03(月) 23:26:51ID:???でもまぁそういう、SQL考えるだけで数時間かかるようなのはSQLにまかせて
定型的なモンだけARでやって楽しようぜ!ってのがARの思想だと思う
0116nobodyさん
2011/01/04(火) 00:53:01ID:???0117nobodyさん
2011/01/04(火) 08:47:58ID:???0118nobodyさん
2011/01/04(火) 10:54:58ID:???0119nobodyさん
2011/01/04(火) 13:24:48ID:???0120nobodyさん
2011/01/04(火) 14:03:16ID:???それがなぜSQLを直接書く人と結びつくのかも不明
0121nobodyさん
2011/01/04(火) 14:06:54ID:???0122nobodyさん
2011/01/04(火) 14:47:07ID:???where句とかのレベルのSQLは書かざるを得ない事が多い気がする。
自分の場合は、それも嫌だったからARを拡張して、全く書かずに済むようにしてるけど、
まだそれ程複雑な物作ってないから、書かずに済んでるのかな。
0123nobodyさん
2011/01/04(火) 14:56:38ID:???PGやめろとか、素質無しとか言われたことがある
もちろんスルーしてやったぜ
■ このスレッドは過去ログ倉庫に格納されています