トップページphp
1001コメント370KB

【RoR】Ruby on Rails Part15

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2012/07/07(土) 00:50:39.45ID:???

http://kohada.2ch.net/test/read.cgi/php/1329492840/

■参考サイト
<英語>
本家:http://rubyonrails.org
API document:http://api.rubyonrails.com/
開発者のblog:http://weblog.rubyonrails.org/
参考wiki:http://wiki.rubyonrails.org/rails
http://ruby-toolbox.com/
http://rubygems.org/
http://agilewebdevelopment.com/plugins/top_rated

<日本語>
Rails' wiki: http://wiki.fdiary.net/rails/

【ヘロク】 Heroku Part1 【PostgreSQL】
http://toro.2ch.net/test/read.cgi/hosting/1329378677/
0481nobodyさん2012/10/15(月) 14:01:34.98ID:nTSyGpBO
>>479
formにremote => trueを付ける
http://higelog.brassworks.jp/?p=1837
04824802012/10/15(月) 14:13:10.65ID:nTSyGpBO
すいません
自己解決しました
http://kinopyo.com/blog/rails-use-of-validates-confirmation-of/
0483nobodyさん2012/10/15(月) 17:00:16.88ID:???
>>481
ありがとうございます。
そこではなくjs.erbの書き方が分かりませんorz
0484nobodyさん2012/10/15(月) 18:07:13.13ID:sCkYKUjB
Ruby on Rails 3 の Ajax いろいろ
http://d.hatena.ne.jp/yuum3/20120903/1346653974
0485nobodyさん2012/10/15(月) 19:08:25.07ID:???
>>484
ありがとうございます

リンク先にもあった
無理やりRails2のような
やり方をするのと

Rails3のやり方でするのは
どちらが好ましいのでしょうか?
0486nobodyさん2012/10/16(火) 05:27:28.64ID:???
そりゃあ 2より 3だな
なんせ新しい
0487nobodyさん2012/10/16(火) 07:52:51.44ID:???
普通、ロジックはモデル内に書かないんじゃない?
コントローラーでするもんでしょ。
04882012/10/16(火) 10:30:27.78ID:???
http://www.youtube.com/watch?v=H8zcRv_XyeQ#t=43m15s
04892012/10/16(火) 10:39:58.61ID:???
Sapporo RubyKaigi 2012 on Vimeo  
http://vimeo.com/channels/sprk2012/
0490nobodyさん2012/10/16(火) 16:13:14.51ID:???
https://github.com/217/ankikun
一対多の関係を作って、controllerで、一から多にアクセスして保存するまでの流れを作っているのですが、うまくできません。
ActiveRecord::UnknownAttributeError in WikiController#create
unknown attribute: wiki_id
とエラーが出てしまいます。
今回の一はwiki本体、多は、wikiのpageです。
いろいろ調べたのですが、わかりませんでした。
よろしくお願いします
04912012/10/16(火) 17:35:24.60ID:???
満足せる豚。眠たげなポチ。:Rolling on Ruby on Rails - Japanese Translation - p5
http://blog.hacklife.net/archives/50117719.html
0492nobodyさん2012/10/16(火) 17:42:07.84ID:???
wiki_id ってカラムは wikipages の方に作るんでは。
0493nobodyさん2012/10/16(火) 23:25:21.71ID:???
>>491
>>492
ありがとうございました。無事に解決する事が出来ました。
0494nobodyさん2012/10/17(水) 14:05:05.54ID:???
Railsでログを抑制する方法ありますか?

具体的には、存在しないコントローラーを叩かれたときなどのログです

IPhoneのIPodTouchIcon notfound
とかそこらへんのログが多すぎて必要なログが埋もれてしまっています

どうすればログに表示されないように出来ますか?
0495nobodyさん2012/10/17(水) 20:24:46.88ID:???
grepしてみてはどうでしょう!
0496nobodyさん2012/10/18(木) 16:30:14.85ID:???
http://www.hetzner.de/en/hosting/produktmatrix/rootserver-produktmatrix-ex

0497nobodyさん2012/10/18(木) 19:44:10.63ID:???
>>469
遅くなりましたが、ご回答ありがとうございます。
できればapp/assetsに置いておきたかったのですが、やはり無理そうなので
レスいただいた通り、Rails 2.x風にpublic/stylesheetsに置いて自前ヘルパでなんとかすることになりました。
0498nobodyさん2012/10/18(木) 20:18:07.04ID:???
postgresのアダプタ(というかpg側)がいけてないなぁ

全部がActiveRecordに乗っかって処理出来るわけではないので、時々生のSQLを叩くのだけど、
ActiveRecord::Base.connection.exec_query() を呼ぶとき、prepared bind queryを使おうとすると
 "SELECT * FROM foo WHERE hoge = $1 AND foo = $2", nil, [[nil, val1], [nil, val2]]
と、冗長構文になる。。
0499nobodyさん2012/10/19(金) 09:02:29.10ID:???
ActiveRecordから生のクエリを実行する
ActiveRecord::Base.connection.execute(sql)
http://d.hatena.ne.jp/trench/20080116/1200467585
0500nobodyさん2012/10/19(金) 14:26:15.29ID:???
>>499
prepared bind は?
0501nobodyさん2012/10/19(金) 14:30:17.64ID:???
論理削除を実装したくて、acrs_as_paranoidを入れようとしてるんだけど、
undefined local variable or method `acts_as_paranoid' for …
ってエラーが出て困ってます…。

Readmeに従い、Gemfileに gem "rails3_acts_as_paranoid", "~>0.2.0"って書いて
bundle installして、0.2.4がインストールされてる。
ちなみにRailsコンソール上では、ちゃんと動いてる(気がする)。
destroyすると、deleted_atカラムに日付入るし。

ブラウザでacts_as_paranoidを指定してるモデル下のページ表示しようとすると
前述のエラーが出る。
誰か助けてください…。
05025012012/10/19(金) 14:36:31.85ID:???
追記:
Railsのバージョンは3.2.7です。
05035012012/10/19(金) 15:46:30.69ID:???
>>501-502
自己レス。
サーバの再起動してないだけでした…。
0504nobodyさん2012/10/19(金) 16:19:14.01ID:???
ヘッダーとフッターだけ共通で2カラムのデザインのサイトを作ってるんですが
右のカラムが
ユーザー用と、その他用、ログインしてる人用

みたいに何種類があります
これをrender partialで読んでいるんですがviewをどこに置くのが定石ですか?

今はviews/rightに置いてますけどいまいちな気もして
0505nobodyさん2012/10/19(金) 23:16:42.52ID:???
shared?
0506nobodyさん2012/10/20(土) 00:41:55.53ID:???
shareだな
0507nobodyさん2012/10/21(日) 23:54:28.28ID:???
datamapper は includes しなくても関連先を1回でロードするらしいのですが、
activerecord で同じような動作をさせることは可能でしょうか?
0508nobodyさん2012/10/22(月) 17:42:05.53ID:???
>>507
Blog.where(id: 1).includes(:entry)
とかでできる
リレーション貼ってないとダメだけど
0509nobodyさん2012/10/22(月) 18:14:34.46ID:BgSV8PVF
ログに

AbstractController::ActionNotFound
(The action 'undefined' could not be found for HogeController)

みたいなエラーが結構起こってます
サイト内で /undefined に飛ばしている場所は一箇所もないのですが何が原因でしょうか……
対応の方法もわからず悩んでます
0510nobodyさん2012/10/22(月) 19:12:42.57ID:???
carrierwaveのホワイトリストって違う拡張子入れるとraiseしちゃうんだけどどうにかできない?
validate通すだけでraiseするからこれをただのバリデーションエラーにする方法は無い?
0511nobodyさん2012/10/22(月) 20:43:21.19ID:???
>>508
datamapper ではその includes の指定がいらないみたいなんです。
activerecord で同じように includes の部分を省略する方法があれば
メンテがすごく楽そうだなと思って質問してみました。
0512nobodyさん2012/10/24(水) 10:38:28.44ID:???
Railsって、URLの拡張子によって送信するcontent-typeを自動的に設定してくれるじゃん?

/posts/123 # html
/posts/123.html # html
/posts/123.xml # xml
/posts/123.json # json

これはいいんだけど、/posts/ の場合はどうするの?

/posts/ # html
/posts/index.html # html
/posts/index.xml # xml
/posts/index.json # json

とかになるの? /posts.json/ とかではないの?
よくしらんから教えて。
0513nobodyさん2012/10/24(水) 19:41:17.07ID:???
>>511
datamapperに乗り換えるしか
0514nobodyさん2012/10/24(水) 21:24:19.03ID:???

Sapporo RubyKaigi 2012 on Vimeo
http://vimeo.com/channels/sprk2012
0515nobodyさん2012/10/24(水) 21:39:01.54ID:srAswaKY
>>512

rake routes を実行

0516nobodyさん2012/10/28(日) 01:31:27.87ID:???
RailsアプリケーションにPiwikを統合 - Analytics - Piwik
http://ja.piwik.org/blog/2012/10/railsアプリケーションにpiwikを統合/
0517nobodyさん2012/10/28(日) 04:12:57.32ID:???
SE・プログラマが知ってると便利な脆弱性チェックツール 4 つ | バシャログ。
http://c-brains.jp/blog/wsg/11/11/02-154822.php

https://addons.mozilla.org/ja/firefox/addon/xss-me/
https://addons.mozilla.org/en-US/firefox/addon/sql-inject-me/
https://addons.mozilla.org/en-US/firefox/addon/hackbar/
http://nmap.org/
http://www.rbl.jp/svcheck.php
0518nobodyさん2012/10/28(日) 05:52:09.47ID:???
>>457
複合主キーって具体的にどんな時に必要?
必要性がイマイチ分からない
0519nobodyさん2012/10/28(日) 11:05:16.70ID:???
>>518
たとえば、ソーシャルアプリでユーザのアイテムを管理するテーブルを例にあげてみようか。

たぶん知ってるかも知れないけど、MySQLの場合は

SELECT * FORM hoge WHERE user_id = ?
ORDER BY item_id

というクエリを使うときに
user_idとitem_idで複合主キーになっている場合が一番高速に実行できる。
(MySQLの主キーはインデックスオンリースキャンが可能だから

設計の美しさの話ではなく、あくまでも実行スピードを重視した場合の話。

必須ということではなく、MySQLなら
なるべくそうなってるとイイよねっていう話。
0520nobodyさん2012/10/28(日) 11:35:18.64ID:???
対応してませんて…
普通に add_index で張れるだろ
0521nobodyさん2012/10/28(日) 14:54:13.77ID:???
>>519
なるほど
アソシエーションうんぬんで複合主キーがあったら便利ってわけじゃなく
索引付けて検索スピードを早くするのが目的なのね。
ありがとう
0522nobodyさん2012/10/29(月) 07:40:49.33ID:???
たとえば
テーブルにcodeっていう文字列のカラムがあって、
そこをレコードごとに入力の際のバリデーションのパターンを変えたいです。

そのパターンはフォーム上でユーザーが指定して作れるような形にしたいのですが
どういった作り方が望ましいでしょうか?

バリデーションパターン例

1. abcdefghij (アルファベット小文字のみ。10字まで)
2. AbCdEfGhI(アルファベット大文字小文字混合。9字まで)
3. 9876554210(数字のみ。9字まで)
4. A1b2C3d(アルファベット大文字小文字数字混合。7字まで)
5. 123-456-789(数字9桁。3桁ごとに-で区切られる)

などパターンはユーザーがレコード作成時に指定する形で
ありとあらゆるパターンが想定されます。
上記はあくまで一例です
0523nobodyさん2012/10/29(月) 09:38:11.51ID:???
前にも見たなそれ
0524nobodyさん2012/10/29(月) 12:47:02.25ID:???
>>522
無理
カラムのバリデーションは固定
ましてや正規表現みたいな入力形式をレコード毎に適用とか不可能
0525nobodyさん2012/10/29(月) 13:26:55.78ID:???
>>522

validate :code_check
attacessor :hoge

def code_check
if self.hoge == "typeA"
unless self.code =~ /[A-Z]+/
errors.add(:code, "がパターンと一致しません")
end
elsif self.hoge == "typeB"
........
end
end

泥臭いけどこんな感じでやる以外ないかな
0526nobodyさん2012/10/29(月) 16:33:30.95ID:???
多(Test)対多(Question)の中間テーブルにtest_id,question_idを格納したいと思いました。
test_idをデータベースに格納する時に、1から始まるユニークなIDにしたいのですが、
うまくできません。本当にわからないので皆様の知恵をお貸しください。
https://github.com/217/ankikun/commit/9430c1a4b3953371ea0fcf5b9b3710053f9dbcdb
0527nobodyさん2012/10/29(月) 19:19:43.17ID:???
Rails3.2.7です。
データの更新履歴を保存するの、何のプラグイン使ってますか?

paper_trailを入れてみたものの、has_manyの扱いがちゃんと実装されてないらしく
困っています…。
0528nobodyさん2012/10/29(月) 20:43:43.67ID:???
>>525
ということはユーザーが正規表現を使うように
任意で無限のパターンを作り出すようなことはできないのねorz
ありがとう
0529nobodyさん2012/10/29(月) 21:39:51.52ID:???
>>526
中間テーブルのtest_idをユニークにしたら
それは多対多じゃなくないですか。
0530nobodyさん2012/10/29(月) 22:29:28.34ID:???
>>528
正規表現をDBにつっこんでevalすりゃできるかもしれんが、evalを使うのはセキュリティ的にも
よろしくありませんわな
0531nobodyさん2012/10/29(月) 22:42:11.70ID:???
>>526
それはhasoneだから多対多じゃない
0532nobodyさん2012/10/29(月) 23:03:59.30ID:???
>>530
ありがとう
やっぱり、こういうのって実現不可能なんだね
0533nobodyさん2012/10/29(月) 23:08:24.61ID:???
>>529
>>531
自分のデータベース・Railsに対する理解が欠けていたので、一対多だと理解出来なかったのが原因でした。
感謝しています。ありがとうございました。
0534nobodyさん2012/10/29(月) 23:36:19.00ID:???
has and belong toってどんなケースで使う?
0535nobodyさん2012/10/30(火) 00:13:06.94ID:???
中間テーブルに関連以外の情報が必要ない多対多
でも無くなるんじゃなかったっけ
0536nobodyさん2012/10/30(火) 00:19:33.34ID:???
deprecatedだな
0537nobodyさん2012/10/30(火) 08:49:47.90ID:???


Riding Rails: Rails 3.2.9.rc1 has been released!
http://weblog.rubyonrails.org/2012/10/29/ann-rails-3-2-9-rc1-has-been-released/

0538nobodyさん2012/10/31(水) 00:13:46.73ID:jWweZIhx
はびたむを使うかわりに、二者の関係に名前を付けて、
互いにhas_many throughが標準的だな。
0539nobodyさん2012/10/31(水) 00:30:19.20ID:???
class Book < ActiveRecord::Base
 has_many :taggings
 has_many :tags, :through => :taggings

こういうテーブルでbookにタグを付けられるようにしたのですが
ひとつのbookに付けられるタグの数を5つまでに制限したいです。

どのクラスにどのようにvalidatesを書けば良いんでしょうか?
0540nobodyさん2012/10/31(水) 00:40:06.46ID:???
真ん中かな
0541nobodyさん2012/10/31(水) 00:41:28.56ID:???
もしくは実際にタグ付け処理する外側で。
taggableにそういうの無かったっけ?
0542nobodyさん2012/10/31(水) 01:35:44.00ID:???
>>539
validates :taggings, length: { maximum: 5 }

ダックタイピングの威力が存分に活かせる例だな
0543nobodyさん2012/10/31(水) 01:38:51.02ID:???
ドラクエXの中核に「Exadata」--全ユーザーを1つのDBで管理 - ZDNet Japan
http://japan.zdnet.com/datacenter/case-study/35023491/

“ドラゴンクエストXの舞台裏”サーバ・データベース開発のプロが語る、数十万人がいっしょに遊べるゲームができるまで【CEDEC 2012】 - ファミ通.com
http://www.famitsu.com/news/201208/22020020.html


0544nobodyさん2012/10/31(水) 02:08:12.12ID:???
>>540-542
ありがとうございます。
lengthは文字列だけだと思ってました。
taggableも調べてみます。
0545nobodyさん2012/10/31(水) 21:02:31.53ID:???
saveするときに、3つある_idオブジェクトの1つの中身が勝手に変わるんだけど、こんな事にであった方いらっしゃいます?
0546nobodyさん2012/10/31(水) 22:34:43.96ID:???
自己解決しました。
0547nobodyさん2012/11/01(木) 21:10:56.24ID:???
acts_as_taggable_onを使っているのですが、タグを追加したユーザーを覚えておいたり、特定のユーザー以外はタグロック(消せなく)したりできますか?
0548nobodyさん2012/11/01(木) 23:03:42.07ID:???
ユーザーってなんだよ
その定義もなしにできるできないなんて分かるわけないだろ
0549nobodyさん2012/11/02(金) 00:36:11.11ID:???
そう書けばできる
0550nobodyさん2012/11/02(金) 02:47:42.25ID:???
>>548
確かにそうですね。すいません

Pixivのようなユーザーが写真を投稿できるサイトでタグ機能をacts_as_taggable_onを使って実現しています

photo
->user_id

user
->id

タグは、他のユーザーからも編集可能にしています。
しかし、その写真のオーナーが消されたくないタグを設定している場合もあるのでオーナーが設定したタグの中でなんらかの方法で選択したタグのみ削除不可能にしたいと思います
この実現は可能でしょうか?
0551nobodyさん2012/11/02(金) 03:07:46.45ID:???
>>550
可能でしょうか?の前に、自分でやったこと書かないと

これこれこういう風にやったけどできませんでした
みたいに
0552nobodyさん2012/11/02(金) 04:38:42.49ID:iQCIFpEx
https://github.com/mbleigh/acts-as-taggable-on/
0553nobodyさん2012/11/02(金) 09:50:31.64ID:???
ふつうにオフィシャルに書いてあったな
0554nobodyさん2012/11/02(金) 10:42:02.77ID:???
オーナーにしたら他のユーザーから編集できなくなるしロックは触れてすらない
書いてないじゃん
0555nobodyさん2012/11/02(金) 11:18:16.25ID:iQCIFpEx
「さくらのクラウド」の新規お申し込み受付の再開について | さくらインターネット
http://www.sakura.ad.jp/news/sakurainfo/newsentry.php?id=687
0556nobodyさん2012/11/02(金) 14:02:08.61ID:???
AWS Elastic Beanstalk has added support for Ruby and Amazon Virtual Private Cloud (Amazon VPC).
http://aws.amazon.com/releasenotes/3475360443946864
0557nobodyさん2012/11/02(金) 14:06:03.14ID:iQCIFpEx
Deploying a Rails Application to AWS Elastic Beanstalk - AWS Elastic Beanstalk
http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/create_deploy_Ruby_rails.html

Deploying AWS Elastic Beanstalk Applications in Ruby Using Eb and Git - AWS Elastic Beanstalk
http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/create_deploy_Ruby.html
0558nobodyさん2012/11/02(金) 14:15:47.04ID:iQCIFpEx
Amazon Web Services Blog: AWS Elastic Beanstalk - Ruby Support and VPC Integration
http://aws.typepad.com/aws/2012/11/aws-elastic-beanstalk-ruby-support-and-vpc-integration.html
0559nobodyさん2012/11/02(金) 15:37:16.96ID:iQCIFpEx
【AWS発表】 AWS Elastic Beanstalk - Rubyのサポート開始、さらにVPC統合も可能に - Amazon Web Services ブログ
http://aws.typepad.com/aws_japan/2012/11/aws-elastic-beanstalk-ruby-support-and-vpc-integration.html

http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/customize-containers.html
http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/create_deploy_Ruby_custom_container.html#create_deploy_Ruby_custom_container-envprop
0560nobodyさん2012/11/04(日) 11:24:51.99ID:???
ここで聞くことじゃない気がするけど
mogokってrailsだけ?sinatraとかpadrino無理なんかな。
0561nobodyさん2012/11/05(月) 23:28:21.67ID:???
rails
5000行以内
ごく一般的な記述

という制限で、それなりなWebアプリって作れると思いますか?
どういうアプリかは置いておきまして。
漠然としていて申し訳ない。
0562nobodyさん2012/11/06(火) 01:38:44.26ID:???
>>561
OK
0563nobodyさん2012/11/06(火) 02:08:15.93ID:???
>>561
可能だと思う
0564nobodyさん2012/11/06(火) 08:04:49.36ID:???
>>562, >>563
ありがとうございます。
やってみます。
0565nobodyさん2012/11/06(火) 14:11:24.48ID:XaGhKZz4
「コード1行につき10円」という取り決めがあったとする。
そしてプログラムの中に要素数1000からなる配列を初期化するルーチンが必要だったとする。
1万10円
40円
10円
http://blog.livedoor.jp/dankogai/archives/50766218.html
0566nobodyさん2012/11/08(木) 17:10:59.33ID:JIoZcSH9
会場ライブ中継 | RubyWorld Conference
http://www.rubyworld-conf.org/ja/live/
0567nobodyさん2012/11/08(木) 23:27:30.39ID:???
リレーションでhas_many thoughを使っている場合
user <-> user_and_user <-> user
このように友人関係を作ったとします
その友人関係(間のリレーション)を削除したい場合はどうすればいいですか?
追加は

user.user_and_user << tarou
で出来るんですが、逆に外すのはどうすればいいですか?

user.user_and_user.where(:id=>tarou.id).destroy
とするしかありませんか?
0568nobodyさん2012/11/08(木) 23:50:40.67ID:???
collection.delete(object, …)
0569nobodyさん2012/11/09(金) 02:53:38.20ID:uWhs7eHW
どうでもいいけど friendship とかの名前にしたいな、それ。
0570nobodyさん2012/11/09(金) 08:29:12.27ID:ljQorQ20
「has_many :through の関連テーブル名には、relation_ の接頭辞を用いる」
http://d.hatena.ne.jp/hichiriki/20100622#1277195810
05712012/11/10(土) 08:38:26.35ID:7ECMacrf
ruby 1.9 におけるハッシュ飽和攻撃による DoS 脆弱性 (CVE-2012-5371)  
http://www.ruby-lang.org/ja/news/2012/11/09/ruby19-hashdos-cve-2012-5371
0572nobodyさん2012/11/11(日) 18:12:02.25ID:???
そのコントローラーでだけロードしたいJSとかはどう使えばいいんですか?

例えばuploadコントローラーのアクションではupload.jsを使いたいみたいなときに、assets/javascript/に入れてしまうと常に呼び出されてしまうからそこに置けないし
0573nobodyさん2012/11/11(日) 19:51:19.75ID:QM75yKBE
http://guides.rubyonrails.org/asset_pipeline.html
0574nobodyさん2012/11/12(月) 16:58:08.37ID:???
コントローラーでUserのscope activeが呼ばれているかを
rspecでテストするにはどうすれば良いのでしょうか。
User.should_receive(:active)では駄目でした。
0575nobodyさん2012/11/12(月) 20:01:42.66ID:???
Railsで検索フォームを設置したら本番環境でのみ
ActionView::Template::Error (incompatible character encodings: UTF-8 and ASCII-8BIT):
が表示されます

対処法などはありますか?
0576nobodyさん2012/11/12(月) 20:05:20.11ID:???
>>575
はいあります。
0577nobodyさん2012/11/12(月) 20:25:50.21ID:jRANh58G
http://d.hatena.ne.jp/Artisan/20110409/1302326813
0578nobodyさん2012/11/12(月) 21:46:03.81ID:TP7cnTaV
>>572
セレクタで区別する。
必要ならbodyにid付けたり。
0579nobodyさん2012/11/12(月) 22:53:28.41ID:???
asset pipeline はそもそも Rails アプリケーション全体で使う JavaScript をひとまとめにして
ブラウザのキャッシュを効かせようというものなので、コントローラによって読み込むファイルを
分けるという発想と相容れるものではない
0580a2012/11/13(火) 01:48:59.08ID:3XNuJC/B
Riding Rails: Rails 3.2.9 has been released!  
http://weblog.rubyonrails.org/2012/11/12/ann-rails-3-2-9-has-been-released/
0581nobodyさん2012/11/14(水) 11:41:37.95ID:???
なるほど!
■ このスレッドは過去ログ倉庫に格納されています