【RoR】Ruby on Rails Part17
■ このスレッドは過去ログ倉庫に格納されています
0001質問常連者 感謝感謝
2013/10/18(金) 20:57:07.83ID:NnVzWy/vhttp://kohada.2ch.net/test/read.cgi/php/1359587251/
http://unkar.org/r/php/1341589839
■参考サイト
<英語>
本家: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/
http://doc.ruby-lang.org/ja/1.9.3/doc/index.html
0031nobodyさん
2013/10/21(月) 23:24:09.22ID:/hLdo4QKそうでしたか
ありがとうございます。調べてみます
0032nobodyさん
2013/10/21(月) 23:30:23.03ID:???ありがとうございます。
すると、trをcollectionにしてループにするのはあまりやらないのでしょうか
0034nobodyさん
2013/10/21(月) 23:56:49.26ID:2KZNVKzsまことにありがとうございます!!
0036nobodyさん
2013/10/22(火) 02:53:22.93ID:wfN4D7SEサーバーの移動をしました。
その際にRailsアプリのフォルダをまるまるコピーして持っていき、
その後、sqlデータをエクスポート→新サーバーへインポートしました。
するとなぜか、paperclipという画像アップロード専用gemであげた画像の格納パスとデータベースに保存されているパスが一致しなくなっており
一部画像が表示されなくなりました。
これを解決する方法をご存知の方はいらっしゃいませんか?
0037nobodyさん
2013/10/22(火) 03:09:37.19ID:HOsNddR80038nobodyさん
2013/10/22(火) 05:31:12.87ID:???参考情報の量以外で
0039nobodyさん
2013/10/22(火) 07:28:02.56ID:???0040nobodyさん
2013/10/22(火) 16:44:24.87ID:HOsNddR8http://toro.2ch.net/test/read.cgi/hosting/1329378677/l50
0041nobodyさん
2013/10/22(火) 17:09:43.61ID:???rails generate controller home index about contact
でHomeControllerとindex,about,contactの3つのアクションができました
このうちaboutだけ不要なので
rails destroy controller home about
ってやったんですが、indexもcontactも含めてHomeControllerに関係するファイルは全て消えてしまいました
こういう場合はどうやるのでしょうか?
0042nobodyさん
2013/10/22(火) 18:50:52.94ID:???0043nobodyさん
2013/10/22(火) 19:02:49.51ID:l6eIb4nfhttp://hayabusa3.2ch.net/test/read.cgi/news/1382432343/
0044nobodyさん
2013/10/22(火) 19:25:58.63ID:???またcapybaraを使ってフォームに値を入れるwithinが使えないのですが
そのようなテストはコントローラーテストでは使わないということですか?
0046nobodyさん
2013/10/22(火) 21:29:01.98ID:z3Clu8jQ個別には消せない
ルーティング規則からaboutを削除すればアクションは呼べなくなる
あと
* コントローラのソースからaboutメソッドを削除
* ビューファイルも消す
ですっきり
0047nobodyさん
2013/10/22(火) 22:47:55.64ID:???0048nobodyさん
2013/10/22(火) 22:49:49.61ID:???http://www.ustream.tv/recorded/40070580
http://www.ustream.tv/recorded/40071025
0049nobodyさん
2013/10/22(火) 23:24:25.72ID:???オープンソースなのに誰がそれを負担してるの?寄付とか?
0050nobodyさん
2013/10/23(水) 04:54:09.83ID:Ry1rC3Pkこのページの下記の部分って、rails4にするにあたって、変更しなければならないのですか?
ArgumentError in Searches#show
'nil' is not an ActiveModel-compatible object. It must implement :to_partial_path.
と出てしまうのですが
<h1>Search Results</h1>
<%= render @search.products %>
0051nobodyさん
2013/10/23(水) 05:07:52.27ID:Ry1rC3Pkこれはモデルのメソッドを呼び出しているのでしょうか?
何をしているのか、そもそもよくわかっていません
0052nobodyさん
2013/10/23(水) 06:34:25.77ID:???一つのファイルを保存するだけで済む方法はないのでしょうか?
複数アプリケーションや複数場面でサイズを変えたいものの、サイズ種類ごとに保存していくと容量を食い過ぎるため。
また、仮に一つのファイルを保存するだけで済んだ場合、呼び出しの度にリサイズ処理に時間がかかったり、弊害はないのでしょうか?
0054nobodyさん
2013/10/23(水) 17:06:45.47ID:???0055nobodyさん
2013/10/23(水) 19:13:09.34ID:???8000万個のオブジェクトをAmazon S3に保存、総容量は410テラバイト
http://www.publickey1.jp/blog/12/pinterest_pythonamazon.html
0056nobodyさん
2013/10/23(水) 19:15:01.70ID:???0057nobodyさん
2013/10/23(水) 21:36:54.67ID:???>>54
ちょっと自惚れがすぎますが、一年程度で1TB、二年程度数TBを想定しています。
徐々にマネタイズしろよ、って話ですが、S3は若干お金の心配があります。
少なくともcloudinary?のように一回の保存だけで対応できる方法を、paperclipやcarrierwaveでとれないかと興味を持っている段階でございます
0058nobodyさん
2013/10/23(水) 21:41:38.92ID:???>>56
なるほど!!!
ただ、私がコスト比較しているのは、とりあえず1TBくらいまでのみちのりです。
そこまで成長しないリスクも想定しつつ。
そのあとは、、、
どこくらいまでが、自前でそろえるよりも有利なんでしょうね。
検討しなくては
0059nobodyさん
2013/10/24(木) 07:40:54.45ID:???そのときになってから対処すればいい
DHHも言ってる
今やらなければいけないことは、「必要になるかもしれない」ことではない、と
0060nobodyさん
2013/10/24(木) 14:36:06.61ID:???hoge.id_sum #=> idの合計値
みたいな感じで値が取れますが、別名を付けた「id_sum」って具体的にhogeのどこに格納された値なのでしょうか?
0061nobodyさん
2013/10/24(木) 14:50:22.85ID:???0062nobodyさん
2013/10/24(木) 19:29:42.96ID:???当該hogeインスタンスに動的にid_sumアクセサが定義されてる
特異メソッドだから、他のhogeインスタンスには無いアクセサなので別の場所や他のhogeインスタンスで呼ぼうとするとエラーになる
Rubyの便利な機能だけど、怖くもある
もしHogeクラスに何か重要なid_sumメソッドやid_sumアクセサが元から定義されてた場合、>>60のコードで上書きされてしまって
意図せぬ問題が発生する可能性がある
この手のRubyの意図せぬメソッドやアクセサの上書きってみんなどうやって対処してるのか興味がある
0063nobodyさん
2013/10/24(木) 19:42:34.57ID:???0064nobodyさん
2013/10/24(木) 20:45:41.72ID:sTGrSraH名前を付けない場合は [] でアクセスできるよ。
0065nobodyさん
2013/10/24(木) 21:30:22.04ID:???なるほど、アクセサを定義している箇所を見れば分かりそうですね。
>>64
[]の引数は何になるのでしょうか?
hoge[:id], hoge["id"], hoge["SUM(id)"]など試してみたけど取れませんでした。
0066nobodyさん
2013/10/24(木) 22:03:20.19ID:???コントローラーにて【@parent.child = child_instance】のような記述で、
関連する親子モデルを割り当てる際に、
saveが走っているようでバリデーションチェックが入ります。
関連する親子モデルを(新規に作成するのではなく)割り当てる際、
バリデーションチェックをスキップする方法などありますでしょうか?
よろしくお願いいたします。
0067nobodyさん
2013/10/24(木) 22:53:01.78ID:???よーく確認しましょう
0068nobodyさん
2013/10/25(金) 00:03:22.04ID:HgfeljUn最後の SUM(id) で出来るはずなんだがなぁ
とりあえず、どんなキーが使えるか、
attribute_names にも入ってない?
0070nobodyさん
2013/10/25(金) 19:57:28.56ID:???0071nobodyさん
2013/10/25(金) 21:55:26.88ID:???OmniAuthを使うとFacebookやTwitterアカウントでログインが出来るという認識です。
こちら側で用意した特定Twitterアカウントからのみ
ツイートを実施したい場合でもOmniAuthは利用できますか?
いちいち各ユーザーがTwitter認証をすることなく、
なんらかのアクションを起こすと、
こちらで用意したTwitterアカウントで投稿が行われる仕組みです。
0074nobodyさん
2013/10/26(土) 03:41:36.42ID:???params[:keyword] = "TEST"
@posts = Post.where('title like ?', params[:keyword])
みたいなことをするのを前提としたとき
titleカラムはindexを貼っておいたほうがいいですか?
0075nobodyさん
2013/10/26(土) 04:44:43.19ID:???でもMySQLではワイルドカードから始まるlikeは
indexが使用されないとかあるらしい。
0076nobodyさん
2013/10/26(土) 12:29:06.40ID:Yys5qMugこれに従って、アドバンスドサーチなるものを作っています。
これにAJAXを付け加えて、検索結果を検索条件入力フォーム欄の下に表示する形態をとりたいのですが、全く辿り着けません。
newアクションから、createアクションを経由し、次にshowアクションにリダイレクトされる流れなのですが。
難しい内容なのかもしれませんが、もし分かる方がいらっしゃいましたら、教えていただけるとありがたいです。
0077nobodyさん
2013/10/26(土) 12:33:37.00ID:Yys5qMugもうすこしjquery/ajaxを使ったスマートな方法が欲しいのです。。。
0078nobodyさん
2013/10/26(土) 12:33:54.38ID:???逆に理解できてなくて答えだけ欲しいというのならスレ違い
0079nobodyさん
2013/10/26(土) 12:58:02.37ID:???きちっと分かってたらこんなところにこねぇだろw
ここは>>77や>>78のように分かってない奴が来るところ
0081nobodyさん
2013/10/26(土) 13:29:54.75ID:Yys5qMug普通のform tagの検索なら簡単にjqueryで動的ページを作れますが、
ここで紹介されているのは複雑な検索用に検索モデルを作って・・・・という流れなのです。
0083nobodyさん
2013/10/26(土) 13:35:17.60ID:Yys5qMug読んでいただければ分かりますが、永続化します。
wheneverなどで、ゴミ掃除はあとでするという考えです。
getだと検索項目が限られるため、モデル化してしまうのが良いというのがrailscastで紹介されているadvanced-seachのやり方です。
なので、動的表示にするのも、もう一歩進んだ知識を持たれた方のアドバイスが必要なわけです。
0085nobodyさん
2013/10/26(土) 13:53:53.61ID:Yys5qMugshow.html.erbで表示される仕組みになっているのですが・・・・
def new
@search = Search.new
end
def create
@search = Search.create!(search_params)
redirect_to @search
end
def show
@search = Search.find(params[:id])
end
0087nobodyさん
2013/10/26(土) 13:58:01.32ID:Q8szoofsredirectするんじゃなくて、結果をJSONやHTML片で返すとか。
0088nobodyさん
2013/10/26(土) 14:05:52.87ID:Yys5qMugそして、そこで呼び出されている?searchモデルが下記になります。
おそらくshow.html.erbの上記記述で下記が呼び出されていて?、それで実際検索が行われる仕組みなんじゃないかと・・・・
def products
@products ||= find_products
end
private
def find_products
products = Product.order(:name)
products = products.where("name like ?", "%#{keywords}%") if keywords.present?
//以下複数の検索項目を設定
products
end
0089nobodyさん
2013/10/26(土) 14:29:11.47ID:???キモはそのrenderの部分
ActionView::Helpers::RenderingHelper#renderを読むと
render(options = {}, locals = {}, &block)
(snip)
・:partial - See ActionView::PartialRenderer.
(snip)
If no options hash is passed or :update specified, the default is to render a partial and use the second parameter as the locals hash.
と書いてある。ということで、ActionView::PartialRenderを見れば、
Rendering objects that respond to `to_partial_path`
# @posts is an array of Post instances, so every post record returns 'posts/post' on `to_partial_path`,
# that's why we can replace:
# <%= render partial: "posts/post", collection: @posts %>
<%= render partial: @posts %>
と今回の例の場合が載っている
0090nobodyさん
2013/10/26(土) 14:34:42.24ID:???ありがとうございます
後々レコード数が増えてからインデックスを貼ると膨大な時間がかかりませんか?
インデックスを貼る行為は
データ容量を大きく食うのとトレードオフですよね?
0092nobodyさん
2013/10/26(土) 14:42:08.77ID:Yys5qMugたしかにそこ良く分かっていなかったです(てかいまだに汗)。
これって動的に表示するのは難しいんですかね?でも大手のサイトとかではよく見るのので、可能は可能なんでしょうが・・・・
0094nobodyさん
2013/10/26(土) 17:18:49.46ID:n7omdGkiActiveRecord::SchemaMigration Load (0.5ms) SELECT `schema_migrations`.* FROM `schema_migrations`
Processing by SearchesController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"OSpOUenfcqQBafhnfsfmwomfwojgcuuvR1+PQ7gE=",
"search"=>{"keywords"=>"sa", "min_price"=>"", "max_price"=>""}, "commit"=>"Search"}
(0.3ms) BEGIN
0096nobodyさん
2013/10/26(土) 19:10:19.48ID:l1LHvxZ+views/hoge
ここのフォルダーに
hoges.html.haml
_tab1.html.haml
_tab2.html.haml
_fuga.html.haml
があって、
hogesから
render 'tab1'
render 'tab2'
をやっても描画されるのに
tab1もしくはtab2から
render 'fuga'
してもテンプレートが見つからないと言われるのはどうしてでしょうか
0097nobodyさん
2013/10/26(土) 19:15:17.02ID:n7omdGkiVALUES ('2013-10-26 08:10:31', 'sa', '2013-10-26 08:10:31')
(13.2ms) COMMIT
Redirected to 〇〇〇〇:3000/searches/18
Completed 302 Found in 97ms (ActiveRecord: 15.6ms)
0098nobodyさん
2013/10/26(土) 19:20:19.60ID:n7omdGkiProcessing by SearchesController#show as HTML
Parameters: {"id"=>"18"}
Search Load (0.6ms) SELECT `searches`.* FROM `searches`
WHERE `searches`.`id` = 18 LIMIT 1
Product Load (0.9ms) SELECT `products`.* FROM `products`
WHERE (name like '%sa%') ORDER BY `products`.name ASC
Rendered products/_product.html.erb (2.4ms)
Rendered searches/show.html.erb within layouts/application (434.2ms)
Completed 200 OK in 613ms (Views: 604.4ms | ActiveRecord: 4.8ms)
0099nobodyさん
2013/10/26(土) 19:23:57.10ID:n7omdGki途中連続規定に抵触し失礼しました。
0100nobodyさん
2013/10/26(土) 21:49:09.91ID:Q8szoofsAJAXコールなんだから受け取った側でちゃんと使ってやれ。
0101nobodyさん
2013/10/26(土) 21:52:54.18ID:???それって体感できるくらいの遅さですか?
アクセスが多くて短時間(例えば一分間)の間に100レコードへの書き込みとかで体感できちゃうレベルですか?
0102nobodyさん
2013/10/26(土) 22:42:11.09ID:n7omdGkiこれ自体は当初からうまく表示されております。
検索欄と検索結果を同一のページに表示したいのですが、そのやり方が分かりません。
『受け取った側でちゃんと使ってやれ』と仰るのはshow.html.erbに検索欄を設置しておけということでしょうか?
0103nobodyさん
2013/10/26(土) 22:54:00.29ID:???なるほど、分かってないのはAjaxの部分だな
Rails部分に関しては問題はないから、Ajaxに絞って勉強しろ
0105nobodyさん
2013/10/26(土) 23:20:10.44ID:n7omdGki勉強はしているんですが、少しヒントをいただけるとありがたいのですがm<_ _>m
ajaxのどっち方面を勉強するのかとか・・・・
0106nobodyさん
2013/10/26(土) 23:27:26.97ID:n7omdGkiそんな難しい内容は誰も答えられないからここに持ってきちゃいかんよ
コード見せてもらうのを期待したんだろうがさくっと書けるレベルの人間はこんなところに来ないから
0107nobodyさん
2013/10/26(土) 23:29:41.04ID:n7omdGki消え去りなさい
0108nobodyさん
2013/10/26(土) 23:38:09.65ID:???ヒントも何も、Ajaxの基礎の基礎だから
入門書と呼ばれるものならどの本にでも載ってるレベル
ということで、まずはお勉強しなさい
0109nobodyさん
2013/10/26(土) 23:43:08.46ID:n7omdGkiですよね^^;
ありがとうございましたm<_ _>m
0112nobodyさん
2013/10/26(土) 23:53:10.47ID:???必要以上に親切にしない。教えて君はエスカレートする。
最初は自分で努力しようと考えている人も、親切にされるとそれを当たり前だと思い、次からはもっと人に頼るようになる。
甘やかすことは、その人から向上心やプライドを奪うことでもある。
http://ja.uncyclopedia.info/wiki/教えて君
0113nobodyさん
2013/10/26(土) 23:55:52.41ID:n7omdGki0115nobodyさん
2013/10/27(日) 00:42:18.60ID:???0116nobodyさん
2013/10/27(日) 00:45:59.00ID:???「まーた、教えてくんかー」とか
嫌味を言われてたけど
まさか今は自分が言う側になるとはねwww
学生時代に先輩が後輩イビリをするのと全く同じ
日本人独特の悪しき伝統だね
だから日本人は陰湿なんだよな
俺も含めてお前ら皆www
0117nobodyさん
2013/10/27(日) 02:56:42.36ID:???適当にurlいれられるだけでエラーになるのでログが肥大化しちゃってうっとおしいです
0118nobodyさん
2013/10/27(日) 03:04:38.96ID:???http://stackoverflow.com/questions/12227613/stop-logging-actioncontrollerroutingerror-rails-3-2
ありがたく思ってね
0119nobodyさん
2013/10/27(日) 03:09:26.90ID:???ブロックをまるまるコピー
そしてアプリ/config/initializersフォルダのなかに
適当に stop_route_error.rb
みたいなファイルを作って
さっきコピーした内容をまるまるコピペして保存→再起動でおk
俺はここの閉鎖的なバカどもとは
違って優しい先輩になりたい
変に育って
仕事を奪われるのが怖い!っていう
低レベルな奴らばかりだからな、ここは
0120nobodyさん
2013/10/27(日) 03:13:09.33ID:???うちに隠そう隠そうとする
大したノウハウでもないくせにな
とくにRoRでの開発者はそういうタイプが多い
Cakephpのスレとか見てると雰囲気が違って向こうは盛んだ
cakephp=リア充
rails=陰湿キモオタってかんじ
日本ではね
0121nobodyさん
2013/10/27(日) 07:48:17.21ID:???Ruby使ってる人はエンジニア気質というか、そもそもが陰湿な人が多いからな
0123nobodyさん
2013/10/27(日) 10:12:54.43ID:???Python: 初心者にやさしい人が集まる言語
Ruby: 人を攻撃したがる人が集まる言語
0124nobodyさん
2013/10/27(日) 11:51:16.82ID:cydvO19T素人が色々質問するのも当然だと思うんだがな。。。
あまりに教えてくれないから、昨日はちょっときれちゃったよ(笑)すまんね。
英語で割と先進的と思われるadvanced-search取り入れて、あとはAJAXの知識が欠けているのは分かって質問してるんだからさ、
簡単にAJAX勉強しろって言われても
>>120みたいのが外の世界では成功してると思うぞ。
教えてくん、はっはっは。みたいな精神だと、外の世界では人望失うだけだし、そういうのって表情に出ちゃうからな
まぁ自力でやりますわ
0125nobodyさん
2013/10/27(日) 11:55:37.74ID:cydvO19T社会はうまくできてるわ
116 :nobodyさん:2013/10/27(日) 00:45:59.00 ID:???俺も一年前はここで色々と尋ねては
「まーた、教えてくんかー」とか
嫌味を言われてたけど
まさか今は自分が言う側になるとはねwww
学生時代に先輩が後輩イビリをするのと全く同じ
日本人独特の悪しき伝統だね
だから日本人は陰湿なんだよな
俺も含めてお前ら皆www
0127nobodyさん
2013/10/27(日) 12:13:29.35ID:???「何が分かってないか分かってない状態」から「Ajaxが分かってないことが分かった状態」まで
教えてもらっておきながら、「あまりに教えてくれないから」なんて暴言もいいところ
そりゃお前に誰も教えてくれんわ
0128nobodyさん
2013/10/27(日) 13:48:50.20ID:???オッサンは勉強しとかないと将来女子高生にアゴで使われそう
0129nobodyさん
2013/10/27(日) 14:19:13.33ID:???このスレでは教わる人全員が嫌われるわけじゃなくて教えて君が嫌われてる
なんで君が嫌われてるのか分からないのかがまず問題だね
それに何でもかんでも聞く人はプログラミング何年か続けてると絶対どこかで詰むからね
Railsのように知れ渡ってる技術を自分で使いこなせないようだと、他のライブラリやフレームワークはどうやって勉強していくのか
■ このスレッドは過去ログ倉庫に格納されています