【RoR】Ruby on Rails Part18
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2014/01/11(土) 20:04:00.68ID:???http://kohada.2ch.net/test/read.cgi/php/1382097427/
http://unkar.org/r/php/1382097427/
■参考サイト
<英語>
本家: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
0283nobodyさん
2014/04/18(金) 00:39:33.69ID:???今すぐ辞めて欲しい、「Ruby on Rails勉強してます」
http://blog.sumyapp.com/2013/07/no-recommend-rails/
で、記事の途中にこんなくだりがあった。
>この記事にぐさっときた人、プログラミング初心者にとっておすすめしたいのはこの書籍だ。
>なれる!SE 2週間でわかる?SE入門 (電撃文庫)
>ぜひ頭の硬いプログラミング見習いの方には読んで頂きたい。技術職における最も大事なことはこの本に全て書いてある
やはりをなれるSEを読むようなクレバーな技術者はRuby on Railsなんてオモチャは
遠ざけるのだな。
0284nobodyさん
2014/04/18(金) 03:16:15.18ID:???0285nobodyさん
2014/04/18(金) 11:10:09.23ID:???結局DB、SQLやWebサーバの詳細を結局勉強するはめになるわけで、
アセンブラやC言語を知らずにRubyを使えるレベル、とまでにはなってないよね。
いきなりRailsをやるより、PHPとApacheで素のWEBアプリをまず作ったり
した後の方がRailsのありがたみが良くわかるんじゃないだろうか。
0288nobodyさん
2014/04/18(金) 19:51:14.01ID:HvjAAhgyより
http://www.hoge.com/index/パラメーター
のほうがSEOはいいのでしょうか?
0289nobodyさん
2014/04/18(金) 20:36:48.22ID:???素のRubyとの比較だと、やっぱりPHPの方が何かと簡単だ(例えばSessionとか)。
個人的には、Rackから始めるのがいいと思うが、Rackを入り口に扱っている情報ってあんまりないよね。
0290nobodyさん
2014/04/19(土) 16:05:29.73ID:h92l0MdqWeb制作板のスレタイを SEO で探したほうが答えが手に入る可能性が高い
0291あ
2014/04/20(日) 19:26:42.59ID:???パンダアップデート
ペンギンアップデート
0292nobodyさん
2014/04/23(水) 01:16:16.25ID:dat1Z6dq0293nobodyさん
2014/04/23(水) 09:41:35.29ID:???https://www.google.co.jp/search?num=100&q=favorite+rails%E3%80%80site%3Astackoverflow.com
0294nobodyさん
2014/04/24(木) 01:05:04.94ID:Xeh6xycuhas_many :tagging,
has_many :tags, :through=>:tagging
end
class Tag < ActiveRecord::Base
has_many :tagging
has_many :products, :through=>:tagging
validates :text, :presence=>true, :uniqueness=>true
end
class Tagging < ActiveRecord::Base
belongs_to :product
belongs_to :tag
end
こういう状態で、ProductのページでTagも追加するようなフォームを作っているのです。
= form_for(@product) do |f|
= f.fields_for :tags do |f2|
= f2.hidden_field :id
= f2.text_field :text
しかし、
�@入力したタグがDBに存在しない場合は、tagsに新レコード追加し、taggingも更新
�A入力したタグがDBに存在する場合は、taggingだけ更新
という挙動を期待しているのに、実際は、POSTされたtagsのパラメーターにidが存在しない場合は、
常にtagsを新規作成しようとしてしまいます(結果として、ユニーク制約に引っ掛かってエラー)
望むような挙動をさせたい場合はどうすればいいのでしょうか?
既存のtagはセレクトボックス、新規作成の場合はテキストボックスなどでわけられるのが理想なのですが・・・
0295あ
2014/04/24(木) 09:03:50.11ID:???オーストラリアのセキュリティ専門家が先月に実施したGitHubの検索では、約1万件のAWS 認証情報が発見されている。
http://ascii.jp/elem/000/000/886/886650/
0296nobodyさん
2014/04/24(木) 12:42:49.45ID:???taggingはproductに毎回付随していて、tagは全てのタグの一覧と言う認識でOK?
それならfields_forで入力させるのはtaggingで、taggingを保存する際にafter_saveで
そのタグが新規かどうかを判定して新規ならtagsを保存すればいいんじゃないのかな
といっても要件がよく理解できてないから的はずれかも
0297nobodyさん
2014/04/24(木) 19:50:38.29ID:???ありがとうございました。
ただし fields_forで:taggingを指定しても出てこないです・・・。
0298294, 297
2014/04/24(木) 20:10:06.47ID:???ありがとうございました。
0299あ
2014/04/25(金) 16:27:02.89ID:???http://www.atmarkit.co.jp/ait/articles/1404/24/news172.html
運用中のApache Webサーバの大半にセキュリティ脆弱性 | マイナビニュース
http://news.mynavi.jp/news/2014/02/11/038/
0300nobodyさん
2014/04/25(金) 20:15:36.90ID:???http://pb-times.jp/P_529d87c5b28d6
0301nobodyさん
2014/04/29(火) 16:24:14.83ID:???0302あ
2014/04/29(火) 20:13:42.89ID:???その4つとは、
Create(生成)、
Read(読み取り)、
Update(更新)、
Delete(削除)である。
ユーザインタフェースが備えるべき機能(情報の参照/検索/更新)を指す用語としても使われる。
ttp://ja.wikipedia.org/wiki/CRUD
0303nobodyさん
2014/04/29(火) 23:21:27.82ID:???scaffold - (建築・修繕・改装の際の)足場, 仮構え (scaffolding);
(高層建築のガラス窓拭き用や画家の制作の際の)つり足場, (高所作業用の)ゴンドラ
(研究社 新英和大辞典 第6版から引用)
0304nobodyさん
2014/04/30(水) 14:47:16.19ID:???ぶっちゃけ商用レベルで管理画面作る時は使わない
手軽にRESTfulなMVCモデルを作れるものくらいの認識
0305nobodyさん
2014/04/30(水) 22:15:24.71ID:CrhybghXなるほど、thx!
0306あ
2014/05/07(水) 01:41:55.35ID:???http://weblog.rubyonrails.org/2014/5/6/Rails_3_2_18_4_0_5_and_4_1_1_have_been_released/
0307nobodyさん
2014/05/07(水) 22:53:01.45ID:???これってRails2.0時代の記法なんですかね?
3.2とか4系だとfindは検索したい列名しかとらない気がするんですが
0309nobodyさん
2014/05/08(木) 23:23:32.55ID:???ありがとうございます
bullet使っていると、:includeつけろってうるさいんですが
これってこのgemが3系のまま変わってないってことですよね
0310nobodyさん
2014/05/09(金) 00:04:20.97ID:???とりあえずこの辺読んでRails3以降のクエリの書き方をお勉強なされ
http://guides.rubyonrails.org/active_record_querying.html
0311nobodyさん
2014/05/13(火) 00:47:11.48ID:jc+wbYf6thank you.
you are good japanese!
0312nobodyさん
2014/05/13(火) 16:10:33.81ID:???0313nobodyさん
2014/05/13(火) 23:07:46.16ID:???0315nobodyさん
2014/05/14(水) 22:34:19.83ID:???という皮肉かと
0316nobodyさん
2014/05/14(水) 23:43:03.92ID:0Cc29kMyself.class.nameがnilです。
名前がないクラスなんですかね?
0317nobodyさん
2014/05/16(金) 21:13:11.48ID:uX+vzxIxいや、俺が質問者で、英語の検索結果くれたから、英語で返事したんだよ。
当方TOEIC900近くはあるから問題なく読めて解決した。
皮肉のつもりはないよ。ありがとさん
0318nobodyさん
2014/05/17(土) 19:48:44.85ID:???スパイソフトを埋め込んだ米国製PC、ルーター、サーバーが、日本を含む世界へ拡散
http://www.amazon.co.jp/gp/product/4105066919
0319nobodyさん
2014/05/18(日) 23:12:34.62ID:hk8drueV0320nobodyさん
2014/05/18(日) 23:16:10.04ID:???ggrks
https://www.google.co.jp/search?q=rails+%E7%94%BB%E5%83%8F+%E8%A4%87%E6%95%B0+%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89
0321nobodyさん
2014/05/18(日) 23:23:47.40ID:hk8drueVできればjquery-fileupload-railsあたりを使いたいと考えています。
jquery-fileupload-rails+carrierwave+Rails4このあたりで詳細サイト知っていたら教えて下さいませんか?
0322nobodyさん
2014/05/18(日) 23:33:47.58ID:???3のサイトのやつを4で試して動かなかったらまた聞けばいい
まずは試せ、手を動かせ
0323nobodyさん
2014/05/21(水) 16:47:14.11ID:???0324nobodyさん
2014/05/22(木) 21:33:08.41ID:???例えばvalidation。
多対多(Hoges : Moges)の関係にあるモデルの一方(Moge)をsaveしようとすると
"Hoge can't be blank"というvalidation errorが発生して
saveが失敗してしまい困った記憶がある。
慣れないfield_forを使っていたせいもあり、
どうしたら良いのか分からずその時は敗北宣言的に迂回してしまったが、
未だに気になってる。そういうのがチラホラあるので勉強しなきゃなと。。
0325nobodyさん
2014/05/22(木) 22:21:50.23ID:R9eMlpe5例えば上野浅草エリアとか
0326nobodyさん
2014/05/22(木) 23:02:48.21ID:???0327nobodyさん
2014/05/22(木) 23:41:19.05ID:???0328nobodyさん
2014/05/23(金) 11:57:24.92ID:???0329nobodyさん
2014/05/23(金) 14:47:19.40ID:stzGS3lF0330nobodyさん
2014/05/23(金) 15:25:30.61ID:???0331nobodyさん
2014/05/23(金) 21:14:44.51ID:shajvKcu良い例見つけました!
こういうので住所入れたらエリアが自動で出てきます。
この仕組みが知りたいっす。
0332nobodyさん
2014/05/23(金) 22:34:01.29ID:???0334nobodyさん
2014/05/24(土) 21:26:52.46ID:1qo8C4LdDocuments/Aptana Studio 3 Workspace/sybentpro/app/controllers/application_controller.rb:1:in `<main>': uninitialized constant ActionController (NameError)
0335nobodyさん
2014/05/25(日) 16:55:17.98ID:???0336nobodyさん
2014/05/26(月) 02:20:32.01ID:5+hysLvgありがとうございます!
>>333
api使えば世界対応も可能っちゅうことかもしれませんね。あざす!!
0337nobodyさん
2014/05/28(水) 01:47:46.31ID:???0338nobodyさん
2014/05/28(水) 07:08:14.63ID:???0340nobodyさん
2014/05/28(水) 08:45:35.41ID:???0342nobodyさん
2014/05/28(水) 13:52:34.02ID:???0343nobodyさん
2014/05/31(土) 18:11:46.95ID:???@instance = nil
@instance = Model.new
ってやる以外にいい方法ないでしょうか?
動的にModelを変更したいのでカラム名などがリテラルで書けないので、なんか良い方法ないかなと思ってます。
0344nobodyさん
2014/05/31(土) 18:38:38.82ID:J5yjoJnZ0345343
2014/05/31(土) 19:24:39.23ID:???ありがとうございます。@instance = Model.new だけで十分でしたね。。
0346nobodyさん
2014/05/31(土) 19:24:52.08ID:???0348nobodyさん
2014/05/31(土) 20:33:30.11ID:J5yjoJnZ0349nobodyさん
2014/05/31(土) 21:36:29.54ID:???0350nobodyさん
2014/06/01(日) 17:47:59.67ID:MVvg2g7wあれって、何個まで表示するとか、何かやっておかなければならないアルゴリズムってあるんですか?
海外バージョンでもやるとしたら、また気をつけなきゃならんことがありますでしょうか?
グーグルだけでもいけちゃいますかね?
0351nobodyさん
2014/06/01(日) 19:47:49.55ID:???0352nobodyさん
2014/06/02(月) 01:04:22.83ID:cdjAC42fすんません。ざっくりとしかイメージがわいていないのでw
国内対応だけだったら駅と緯度経度データベース作って、距離検索でしょうけど。グーグルとかの最寄駅はどういうアルゴで出るのかね。
海外対応までしようと思ったらグーグル使わんとにっちもさっちもいかんのか。
経験者がいれば、ざっくりとした回答が欲しかった
0353nobodyさん
2014/06/02(月) 17:13:24.71ID:???表示中のランドマーク取得でいけそう
0354nobodyさん
2014/06/02(月) 21:41:15.02ID:IKV43VQr<label>の生書きでなく、f.labelを使ってできませんか?
この方が書いてるもう一個の方法はできるのですが、labelのブロックで色々大きさとか調節したいんです。
http://gpsoft.dip.jp/hiki/?Rails%A4%C7%A5%C1%A5%A7%A5%C3%A5%AF%A5%DC%A5%C3%A5%AF%A5%B9%A4%CE%A5%E9%A5%D9%A5%EB%A4%F2%A5%AF%A5%EA%A5%C3%A5%AF%A4%B9%A4%EB
•<input>を<label>の子要素とする
<label><input type="checkbox" name="check1" />Check1</label>
0355nobodyさん
2014/06/03(火) 08:00:47.64ID:???すればいいじゃん
0356nobodyさん
2014/06/03(火) 08:59:59.19ID:???http://dev.classmethod.jp/smartphone/swift/
米アップル、iOSアプリの新開発言語にSwiftを導入
http://ggsoku.com/2014/06/ios-8-swift/
米アップルは2日(現地時間)、iOS 8に新開発言語「Swift」を導入すると発表した。
Swiftは非常に軽快に動くことが特徴であり、Objective-CとC言語の中間に位置するようなイメージであるという。
コード体系はC言語を踏襲。
CocoaやCocoa Touchに対応することはもちろん、LLVMコンパイラを利用してビルドされる。
LLVM
http://ja.wikipedia.org/wiki/LLVM
LLVM とは、コンパイル時、リンク時、実行時などあらゆる時点でプログラムを最適化するよう設計された、任意のプログラミング言語に対応可能なコンパイラ基盤である。
LLVM は、JavaとJava VMの関係のように、まず仮想機械をターゲットとした中間コード(ビットコード)を生成し、その仮想機械向けコードを特定のマシンの機械語に変換する。
playgrounds を使うとインタラクティブに実行できる。
https://developer.apple.com/library/prerelease/ios/referencelibrary/GettingStarted/LandingPage/Art/largeshot_2x.png
0357nobodyさん
2014/06/03(火) 12:38:52.70ID:???0358nobodyさん
2014/06/03(火) 17:17:13.70ID:???コントローラのメソッドから特定の返り値を取得したいのですが、
stubを使って書く際のObjectをどのように指定したら良いか分かりません。
[ここに何かが必要だと思うけど分かりません].stub(:method).and_return(value)
スタブで取得することは可能でしょうか?
可能な場合どのようにオブジェクト指定したらよいのでしょうか?
0359nobodyさん
2014/06/03(火) 20:38:27.53ID:Ip12GRTVえぇ、それはできますよ。
>>354にある通り、ラジオボタンやチェックボックスを内包したラベルを作りたいのです。
これがrailsから導く方法が難しいんですよね。
0361nobodyさん
2014/06/04(水) 19:29:38.02ID:6xizC0Eiなるほど。なかなかハードル高そうですが、手っ取り早く記述だけで何とかなるもんじゃないんですね。
先の例のもう片方のように。
0362nobodyさん
2014/06/04(水) 20:10:21.69ID:???<% f.label 'check1' do %>
<font size=7>Check1</font>
<% end %>
0363nobodyさん
2014/06/04(水) 21:51:45.24ID:efQEBuMUありがとうございます!!!!!
さすがです!!
0364nobodyさん
2014/06/06(金) 05:18:00.21ID:???今までDeviseとconfirmableを使い
メール認証のみで会員登録制度を強いてきました。
しかし、この度OmniAuthを使い
FacebookやTwitterを利用し当サイト利用の敷居を低くしようと思っています。
しかし気になる問題があります。
今までは会員登録だったため
登録が行われると
UserテーブルにUserレコードが生成され
且つ関連テーブルのProfileにもレコードが出来ていました。
Userには登録メアドのemailカラムを含め、アカウント名であるaccountカラムが、
Profileにはニックネームのnicknameカラムなどがあります。
そして、会員が投稿すると、これらアカウント名やニックネームが表示されたり、
サイト内でのメッセージのやりとりはemail宛へ転送されます。
もし、facebookやtwiter認証した場合はこれらは全てnilになりますよね?
OmniAuthで認証した会員の場合はUserレコードやProfileレコードは生成されませんよね?
となると、何を元に誰が投稿したのか?といったものを取得できるのでしょうか?
0365nobodyさん
2014/06/06(金) 05:59:22.66ID:???0366nobodyさん
2014/06/06(金) 06:25:27.83ID:???そこらへんをどうするかイマイチぴんと来ていません
調べたところOmniAuthでもTwitterの場合だとメアドが取得できないみたいなので
どのようにして正しいメアドを取得してUserテーブルのemailカラムに格納するか?
今までの数千に渡るユーザーのuid(ユニーク)はどうするかなど
似たようなこと(deviseのメール認証必須会員登録制→OmniAuthでTwitter、Facebookでも登録できるように)をしたことある人がいたらアドバイスをください
0367nobodyさん
2014/06/06(金) 06:34:40.87ID:???初ユーザーが訪問
↓
Facebookアカウントで登録ログイン
↓
トークンごしに取得できたauth['name']など
ユーザーの各種情報を利用して
Userレコードを追加(メール認証しなくてオーケー)
それ以降のコールバックについては、userレコードが存在する場合はuserレコードの追加は行わず
ただのログイン処理だと見なす
ただし、この場合Twitterだけメアドが手には入らないから切り分けが必要そう。。。。
そもそも登録の際にニックネームとメアドしか聞いてなかったから
Twitter認証してメアド登録してもらうほうが手間がかかってしまう気がする。。。。
0368nobodyさん
2014/06/08(日) 10:47:59.45ID:???なんらかのリンクをクリック
非同期通信
結果を表示
という事をよくやるのですが、大抵のサイトではクリックしたあとにグルグルと画像が回ると思います
これをRailsでやろうと思うとjqueryで無理やりフックしないとダメですか?なにかしらスマートな方法がないかなーと考えていたのですが
0369nobodyさん
2014/06/08(日) 13:59:51.28ID:???0370nobodyさん
2014/06/08(日) 14:19:06.97ID:???0371nobodyさん
2014/06/08(日) 14:27:10.31ID:???0372nobodyさん
2014/06/11(水) 12:14:10.18ID:???アクティブユーザーがそこそこ賑わっていて常にユーザー情報の更新や
投稿が行われるサイトは
よーく設計してdalliとかredisを使いつつページキャッシュやフラグメントキャッシュも使いこなさないと激重くない?
indexとかも貼るべきには貼ってるし検索とかはsolrを使ってる
しかし糞重い
ページがサクサクロードできるようなサイトって
変更あったら書き出してページキャッシュか何かにしてんの?
さくらVPS SSD2GB 2コアを使ってても
こんなに遅く感じる
0373nobodyさん
2014/06/11(水) 13:54:35.52ID:???何が重いの?プロファイリングしてみた?
Railsで重いサイトは大体は集約関数周りでこけてることが多いな
ページキャッシュはある程度の規模からやってるとは思うけど
フラグメントキャッシュまでやってるところはあまりなくね?
0374nobodyさん
2014/06/11(水) 15:08:34.00ID:???miniprofiler使ってる
時間がかかってるのは
複数のテーブルを紐づけて
関連先のカラムでソートかけて取り出したりとかが重いね
それにロードするごとに沢山のコードが動く
会員制だから仕方ないよね
ちなみに会員制敷いてると
ページキャッシュ無理じゃね?
0375nobodyさん
2014/06/11(水) 15:15:12.82ID:???カウンターキャッシュみたいに
countカラムを用意するのが定石?
そしてメッセージの送信後に送信先相手のcount件数を計って更新ってな具合にすべきかな?
0376nobodyさん
2014/06/11(水) 15:53:19.51ID:???各会員専用が主だとページキャッシュは無理だね
一部なら、そこだけ非同期にしてキャッシュする
MySQLかな?JOIN先ソートとか苦手だけど、それが重いなら対処すべきよ
きちんとインデックス使われてるのかね?
たくさんのコードってSQL?会員制だから仕方ないとかは内容次第だろうね
共通部分をできる限りキャッシュするしね
0377nobodyさん
2014/06/11(水) 20:13:40.78ID:???0378nobodyさん
2014/06/11(水) 20:36:00.81ID:???一部ならそこは非同期ってなると
結局フラグメントキャッシュになるよね?
>>376, >>377
そうMySQL
きちんとインデックスって
これらを守ってインデックス貼ってるんだけど
・○○○_idなどアソシエーションに使われるカラムには全てindexを貼っている
・検索対象となるカラムには全てindexを貼っている(且つsolrを利用)
0379nobodyさん
2014/06/11(水) 20:36:33.73ID:???0380nobodyさん
2014/06/11(水) 20:37:05.37ID:???そんなに早いの?
ニコ生みたいにリアルタイムで更新されまくるような仕組みもイケちゃう系?
0381nobodyさん
2014/06/11(水) 20:38:21.89ID:???SQLクエリ見たところで
何がボトルネックになって
こんなに時間がかかってるのか分からない
1つのコード実行した、それだけでも時間がかかりまくってるし
0382nobodyさん
2014/06/11(水) 20:40:37.57ID:???非同期部分を除いてキャッシュするって意味
フラグメントキャッシュは概念全然別
>>381
時間がかかっていることが多いSQLの実行計画を見るのは定石
■ このスレッドは過去ログ倉庫に格納されています