【RoR】Ruby on Rails Part18
3 :
nobodyさん:2014/01/12(日) 01:27:24.84 ID:q2C1gqcI
debianで、rails -vでバージョン確認すると、2.3.14とでます。
バージョンを上げた方が良いと思うんですけど、どうやれば良いんでしょう?
初心者でわかりません。教えてください。
4 :
3:2014/01/12(日) 01:50:32.50 ID:q2C1gqcI
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': iconv will be deprecated in the future, use String#encode instead.
/usr/lib/ruby/vendor_ruby/railties/lib/rails_generator/generators/applications/app/app_generator.rb:7: Use RbConfig instead of obsolete and deprecated Config.
このあとダラダラでて、怒られてるような気がするんですけど、どうすれば良いでしょうか?
初心者だから、教えて欲しいです。
gem install rails --version "~>4.0.2"
gem install バージョンでググレば山のように出てくる
あとエラーメッセージは自力で嫁 その程度の英語が読めないならRubyに限らずプログラミングは困難
6 :
3:2014/01/12(日) 04:36:25.96 ID:q2C1gqcI
う〜ん、日本語で書かれてても理解できなさそう。
>>4の一行目は、iconfは将来的に廃止されるから,String#encodeを代わりに使えって言われても謎。
一応、そのファイルの36行目周辺を見ても、iconfの文字はないし。
>>4の2行目は、ConfigとRbConfigって何ってなってしまう。
>>3 まずはrvmかrbenvを入れて、Rubyのバージョンを上げよう
8 :
3:2014/01/12(日) 14:59:20.08 ID:q2C1gqcI
>>7 ruby -vで確認すると、
rubyのバージョンは、1.9.3p194(2012-4-20)ってでるんですけど、
バージョン低いんですかね?
確かに、2012の4月でちょっと昔そうではあるんですけど
9 :
3:2014/01/12(日) 15:02:42.21 ID:q2C1gqcI
10 :
3:2014/01/12(日) 15:05:43.22 ID:q2C1gqcI
13 :
3:2014/01/12(日) 18:32:54.67 ID:q2C1gqcI
rbenvを使って、なんだかrubyのバージョンは上げられました。
1.9.3-p484です
ですが、またそこから謎です。
ここには教えられるレベルの人間は来ていないからな
私みたいに出来るレベルの人間はたまに暇潰しに覗いてツバを吐いて出ていくだけ
文面から分かるけど、教えて君とか何とか言っているのは常連の無能だよ
そんじゃノシ
18 :
3:2014/01/13(月) 01:19:26.70 ID:mgMypIex
色々教えてくれた方、ありがとうございます。
色々やってみましたが、rubyのバージョンを最新版に上げたのに、少し下げたりと、
なんか色々な方法を試して失敗してるみたいな感じです(よくわからない)。
railsはbundleなんとかまで上手くいったのですが、
gitあたりになんか色々詰め込んで、requireで指定するか、消すかで、
よくわからないんで、しばらく諦めようと思います。
とりあえず、linux周りの勉強をもっとして、先輩あたりに聞いてみたいと思います。では。
rspecが全然わからん
どういうときに、何を書けばいいんだ
こういうコード書いてるから、こういうテストスクリプト書くっていう
例を教えてくだちい
>>19 消えろ虫けら
二度と来るな
ここには教えられるレベルの奴は来てない
>>19 rspecで何を書けばいいかはプロジェクトによるとしか言えない
自前のプロジェクトなら自分が気になるとこだけやっておけばいいんじゃなかろうか
>>20 残念でちゅ
>>21 そういうものですか。
単体テストというと、ifでの分岐とか
クラスから生成したら、そいつがちゃんとクラスかとか
そういうの見ればいいのでしょうか
どうにも基準がわからなかったのです
>>22 世の中に基準は色々あれど、採用するかどうかはプロジェクトによる
>>22 simplecovなどと合わせてカバレッジを見るようにしてみると
最低限のテストにはなるんじゃないかな。
>>19 例えばAPIを書いていて下方互換が必要かつ、バージョンアップごとに機能を追加する場合
当然データベース構造やモデルのメソッドやスコープをいじることになるが
その時にいちいちブラウザで全てのバージョンごとに動作確認するのは時間の無駄だし、絶対に漏れがでる
rpsecであらゆるパターンごとの結果を検証していれば適切な動作になるかが一目瞭然だし
失敗している場合もどこをどう修正すればいいのか明確になる
ウェブアプリで下方互換の必要がなくても、モジュール化された部分が変更されると
どこに影響が生じるかは判別しづらいし、その度にブラウザポチポチするのは確実でない
最も大きいのはRailsのバージョンアップで、あらゆる箇所に影響を与えるから
テストを書いていないと事実上バージョンアップに耐えられなくなる
def [](hoge)
all[hoge]
end
def all(reload = false)
〜
end
この記述の仕方ってどういうことを挿してるのでしょうか
def [] でググってもあたらなくて。
29 :
nobodyさん:2014/01/15(水) 22:01:21.72 ID:XpYxBZdp
obj[hoge] の形で呼び出す [] メソッドの定義だよ
すみません、いまいちイメージがつかめず
objで呼び出すとはどういうことですか
あと ||= の演算子もよくわからず
普通、メソッド呼び出しは
obj.hoge
みたいに呼び出すよね?それに加えて、
obj[huga]
という書き方でobjというオブジェクトの[]というメソッドを呼び出す
ことができるんだ。この[]というメソッドを定義しているのが
def [](hoge)
というわけ。あと、
a ||= b
は
a = a || b
の省略形
>>31 おお、なんとなく判った気がします
丁寧な解説で助かりました
ありがとうございまう
すぐにぐぐらずに〜マニュアルを〜よ〜め〜
age
35 :
あ:2014/01/17(金) 05:18:28.10 ID:???
37 :
nobodyさん:2014/01/18(土) 03:30:34.27 ID:nh9P47yc
あ、localhost:3000に繋がった! やったね!
38 :
nobodyさん:2014/01/18(土) 03:35:27.19 ID:nh9P47yc
ITmedia エンタープライズ:自社サーバがフィッシングサイトに「踏み台化」されたら? (1/3)
また、電源を切ってしまうことも良い対応ではない。
オンメモリ上で稼働しているフィッシングサイトの場合は、電源を切ることによって、すべてのデータが消えてしまい、原因究明や対応に遅れなどが出ることも考えられるからだ。
事実、フィッシングサイトを構成するツールの中には、後に証拠が残らないよう、すべてがオンメモリ上で動作するものがある。
このような場合、再起動や電源オフによって、メモリ上にあるすべてのプログラムやファイルが消え、事実や原因の確認が困難になる。
http://www.itmedia.co.jp/enterprise/articles/0603/17/news004.html
43 :
nobodyさん:2014/01/25(土) 10:10:12.36 ID:KuoCcVFE
44 :
nobodyさん:2014/01/26(日) 10:58:22.87 ID:WqthtWoB
a
45 :
nobodyさん:2014/01/26(日) 21:26:03.56 ID:WqthtWoB
jQuery-File-Uploadを使っていますが、addでアップロード中のテンプレートを紐づけた後、
アップロード完了後に別のテンプレートを紐づけたいと思っています。
この場合、doneを使えば良いのでしょうか?
かなりマイナーな質問ですが宜しくお願いします。
場違いかもしれないですが、他に適切なスレが無かったので質問させてください。
今までずっとRailsの開発をしていて、今回初めてsinatraの開発をすることになりました。
Ajaxのレスポンスで、Railsではjs.erbのように、変数を埋め込むjs を返せましたが、sinatraでこれを実現する術が見つかりません。
そのためレスポンスはいつも静的なjsやhtmlを返す必要があるため、コントローラ側でインスタンス変数を用意しておいてviewでそれを使う、といったことが出来ません。
これを実現する方法は無いでしょうか。
48 :
nobodyさん:2014/01/26(日) 22:31:21.87 ID:WqthtWoB
一応解決しましたが、アップロードがループしてるみたいで、何個も重複でされてしまいますw
助けて欲しいですが、もう少し悪戦苦闘してみます。
49 :
nobodyさん:2014/01/26(日) 23:15:38.96 ID:WqthtWoB
上級者にはこの説明だけで分かるかと思いますが、
createアクションで何をどう返せば良いのかが分かりません。
使用しているのはdataTypeはscriptです。
久々の煽り教えて君
どう見てもRailsの話じゃない
JavaScriptスレ行け
>>51 どう見てもrailsの話だろ railscastにももろ載っている分野w
質問者の聞いていることはダイレクトには載っていないから試しにきたのか はたまたただの質問か
>>51のようにrailsとは関わりもないと思う低能ワーカーが多いから面白そうだ
まぁ私は答えられるが君たちの実力でも見物させてもらうことにするお
>>53 JavaScriptの話はJavaScriptスレの方が適切な回答を得られる
55 :
53:2014/01/26(日) 23:26:52.59 ID:???
>>51 =
>>54 分からないnaraごたごた語るなよw
Railscastにも載っている分野と言っているだろうが
しかもjavascriptに限定した問題じゃねえからw
馬鹿丸出しだなw
こんなことも分からずどんな仕事してんの?w
しかもここに何しに来てんの?w
>>55 せっかく適切な場所に誘導してやってるのに、問題を解決したいんじゃないのかい?
(なお君が質問者本人であることはバレバレなので)
57 :
53:2014/01/26(日) 23:30:32.44 ID:???
>>49 俺は分かったけど ここにいるゴミたちはもう少しヒントがないと分からないと思うぞ
その存在すら知らないで糞サイト作ってるやつばかりだから
javascript絡みと認定する"上級者"の発言見て笑い転げてるんだろ?w
次の方どうぞー
ここは相変わらずだな〜
上級者は荒らしに来て、下級者は自分が答えられる低レベル質問だけに答えて悦に浸る
気持ち悪い輩が多いからしばらく見ていなかったがレベルは低いままだw
>>49 doneのところでreturn data.submit()やってるだろ?多分
それがあるなら消してやってみな
うちの部下も間違えていたからそれじゃないかな?
もし違ったらまたここで言いな
でもここ俺みたいに応えられる人間それほどいないから、ググりまくったり試行錯誤しまくったりの方が実力つくよ
すでにここにいるゴミよりはレベル高いから頑張り奈
61 :
53:2014/01/27(月) 00:15:27.44 ID:???
>>60 あっ、俺ね
多分これ答えられるの俺だけ
君が試験しているのなら、君と俺だけ
javascriptの問題と思ってるアホがいて辟易としただろ?w
railsCastも読み漁っていないワープアばかりなんだよここは
俺と君除いてね
ほんじゃノシ
62 :
nobodyさん:2014/01/27(月) 00:39:39.10 ID:e6GdOtI/
>>61 おおおおおいけましたああああああ!!!!!!!!
試験?いえ、そんなレベルは高くないです^^;
今後ともご指導宜しくお願い致します。
1人で何やってんのw
俺もRuby Railerだが
てめぇらクズのせいで
一括りにクズ扱いされるのはゴメンだ
答えられなかった低脳が戻って来たね
あっ、俺以外全員かw
プライドだけは高いから自演による罠だとでも思っているようだw
まぁ、君たちは糞サイト作って一生終われば良いよw
こいつらじゃ絶対にクリエイティブなものは生まれない
レベルが低すぎるし、プライドはアンバランスに高すぎる
こんな問題も答えられずにグダグダこのスレに住み着いている
屑どもだ
私は失敬するよ
ゴミ臭さが移る
分かったからさっさと消えろよ
お前つまんね
本当につまんないね
72 :
nobodyさん:2014/01/30(木) 00:32:31.65 ID:YnHSSLC6
has_manyとhas_oneのデータベース上の違いがわかりません。
両方とも外部テーブルの主キーを外部キーとして持つんですよね?
languages
| id | name |person_id |
|─┼──┼───┤
| 01| PHP | 02 |
| 02| Ruby | 03 |
| 03| Perl | 01 |
persons
| id | name |
|─┼─────────┤
| 01| Larry Wal |
| 02| Rasmus Lerdorf |
| 03| Yukihiro Matsumoto |
frameworks
| id | name | language_id |
|─┼──────┼─────┤
| 01| Ruby On Rails | 02 |
| 02| CakePHP | 01 |
| 03| Catalyst | 03 |
| 04| Sinatra | 02 |
| 05|Symfony | 03 |
この場合、languageはhas_one person、lanaugesはhas_many frameworksとするのが妥当ですが、
これはModel側の記述であり、DB上は特にhas_oneとhas_manyに違いはないですよね?
74 :
nobodyさん:2014/01/30(木) 12:05:51.35 ID:SFIRhpo1
75 :
nobodyさん:2014/01/30(木) 19:18:14.28 ID:SFIRhpo1
facebookもtwitterもMySQL使って何十億単位で捌いてるけどそれはどうなん?
sharding
>>73 ありがとうございます
違いはそれだけですか?
>>79 データベース上はそれだけ
Rails上での扱いやパフォーマンスは異なる
rake test
を実行するとdevelopmentの方のDBが使われちゃうんだけど、これはどこを直せばいいんだろうか?
rake test RAILS_ENV=test
これならうまく動くんだが
>>82 関係有るかな?ちなみにRails4.0.0
ただtest_helper.rbをENV["RAILS_ENV"] = "test"に
直しても同じなんだよなー
クエリーの結果が
[
{ id: 1, category: "game", title: "foo" },
{ id: 2, category: "game" ,title: "bar" },
{ id: 3 ,category: "anime", title: "baz" },
{ id: 4, category: "manga", title: "hoge" },
{ id: 5, category: "manga", title: "fuga" }
]
というハッシュの配列なのですが、扱いにくいので
{
"game": [ { id: 1, title: "foo" }, { id: 2, title: "bar" } ],
"anime": [ { id: 3, title: "baz" } ],
"manga": [ { id: 4, title: "hoge" }, { id: 5, title: "fuga" } ]
}
という形式にしたいのです。
ActiveRecord側でやるとしたら、
{ "game": Table.where(:category=>"game").pluck(:title),
"anime": Table.where(:category=>"anime").pluck(:title),
"manga": Table.where(:category=>"manga").pluck(:title) }
ですが、リモートDBに3回もアクセスしてしまうのがネックです。
Ruby側でflatternの反対みたいなことしたいのですが、無理なのでしょうか?
86 :
85:2014/02/01(土) 23:53:35.89 ID:3TbUHFmS
Enumerable#group_byがありました
お、おう
88 :
nobodyさん:2014/02/02(日) 04:27:31.92 ID:PCf1V6FE
(1..6).group_by {|i| i%3} #=> {0=>[3, 6], 1=>[1, 4], 2=>[2, 5]}
89 :
nobodyさん:2014/02/04(火) 20:24:52.19 ID:6aYeGabM
90 :
nobodyさん:2014/02/04(火) 23:50:47.19 ID:gU4r7kTu
ブログ記事があって、そのブログ記事に貼り付けるタグ(複数)も同時に編集できる画面があります。
そのタグは、既存のタグを@tags = Tag.where(:article_id=>@article.id)とかで持ってくるのですが、
その既存タグたちを編集するときの仕様が困っています。
@tags.each do |tag|
form_for tag
とかやってしまうとタグの数だけformが作られてしまいます。
form_tag
@tag_each do |tag|
とすればいいのですが、formよりもjQueryでエンドポイントにそのままputするほうがスマートでしょうか?
Railsでどういう作り方が推奨されてるのでしょうか。
>>90 has_many through と fields_for あたりでググればなんか出てくるよ
92 :
nobodyさん:2014/02/05(水) 23:58:56.05 ID:CUveIPVW
>>91 has_many :throughは中間テーブルがあるとき限定っぽいです
93 :
nobodyさん:2014/02/06(木) 00:08:00.85 ID:na+0nu86
めずらしいな。
>>90 の実装だと同じ字面のタグが複数できちゃうから、taggings みたいな
中間テーブル作って has_many trhough が常套手段だけど。
それはともかく、本体は fields_for なのでそっちも調べてよ。
今日から勉強し始めた正直なんか複雑で難しい
2,3年フルタイムで使ってるけど未だに使いこなせないし
どんどんRails自体の機能やライブラリが新しくなって2,3年前の記事が参考にならないくらいだから
初めは取っ付きづらくて当たり前だと思う
むしろ下手に習熟してアプリケーションが肥大化するとバージョンアップにとてつもなく苦労する
実務でRails使えるなんて幸せだね
>>97 「最大公約数的な考え方をするとPHPしかない(キリッ」って言われて
どうしてもPHPなんだよね。
実務レベルでRails使えるエンジニアなんて求人出しても応募してこないでしょ。
新規事業だとRailsの方が多いんだけどね
受託系だとどうしてもPHPしか選択肢がない
実際開発に使ってるところはIDEとか開発環境何でやってんだろ
netbeansのrailsプラグインはなぜか
railsプロジェクトだと自動scpアップロード機能が使えなくてがっかりした。
最初二つはIDEじゃないけどVim、Sublime、intelliJ(RubyMine)じゃないんかな
Vimとかでがっつり開発してるのかな
sshでWinからやんのかね
なんかWeb開発ってGUIじゃないと捗らなそう
Vimは普通にGUIのあるし、プラグインも腐るほどあるぞ
RubyはIDEの性能がいまいちだからな
そのせいで会社がRailsに移行してくれん
JavaとPHPから抜け出せん
107 :
nobodyさん:2014/02/07(金) 21:41:23.68 ID:VfrloKNC
なんでvim使う程度でsshが出てくるかと思えば窓か。
Linux上で直接開発すんのか?
仮想環境にSSHするのが普通だわな。林檎だけどな
いや普通にMacで開発しろよw
Rails始めたいと思うんだがとりあえず本の通りにショッピングサイトみたいの作った方が良いですかね
ちょっと舐めてたのもあるけど一通りやらないと自分で自由に出来ない予感がする
実務でrailsやってるけど
macbook airでvimだな
最近はこれぐらいライトな開発環境が多いと思う。
javaとかcとか俺には絶対無理だし
>>111 もちろんその度にググレば場当たり的に対応できるけど、
ライブラリも交えて自由にショッピングサイト作れるようになるまでフルタイムで1年くらいかかるぞ
そもそもRails自体一人で扱うには範囲が広すぎて、新機能・ライブラリとのいたちごっこみたいにになる
前まではmacで開発してたけど
今は知り合いも会社もvagrant
会社ではvagrantで開発環境作るのがルールになってる
依存で悩む経験するとmacじゃ開発できなくなってくる
rails案件ばかりだとエンジニアとしては本当に馬鹿になるよな
何を求められてるかによるでしょ
ライブラリをカスタマイズしたりと自分で何かを生み出す能力は身につかないけど
既存ライブラリとRailsの特性を活かしてレールに乗れた時の生産性は非常に高い
前者を求める企業には適合しないけど、少ないリソースでいくらかの成果を求める分には適合する
Rails力という独特な能力ですな
Railsを書くのにRubyを知らなくてもいいなんて
Matzの対談で出るぐらいのことだからな
驚きですよ
119 :
nobodyさん:2014/02/08(土) 13:20:37.97 ID:NPzdtZy4
Rails得意そうな会社ってクックパッドとドリコムくらいしか思いつかない。
クックパッドはRailsじゃなくてサーバでしょ。
アプリケーションエンジニアは平凡な人たちだよ。言葉悪いけど。
できたてのWEBサービス系ベンチャーのRails率は半端ないよ。
122 :
nobodyさん:2014/02/08(土) 15:45:41.97 ID:NPzdtZy4
twitterがRailsのまんまだったら代表的な例として挙げられたのに
クックパッドだといまいちインパクトに欠ける気がする
え?twitterってフロントもscalaにしたの?
>>123 アメリカで新興だけど1000万人規模のサービスとか結構Railsで作られてるよ
>>121の通り、世界的にベンチャーのRails採用率は異常に高い
フロントとバックエンドの分離ってデータベースの整合性どうしてるんだろう
ストアドプロシージャをメインで使うのかね
俺の知らない用語を使うなカス
>>93 ありがとうございました
fields_forでやっと出来ました
buildとか必要だったことがなかなか分かりませんでした
次はhas_many throughでテーブルから組みなおします
fields_for使わないほうがいいよ。そういうのをフレームワークに任せると細かい挙動が予測できないでしょ。
fields_for使わないで何をつかうというんだw
自前だよ。params二つ受け取って自分で親子関係設定すればいいだけ。
バカは放置
134 :
nobodyさん:2014/02/10(月) 08:17:25.78 ID:J/5zHJ5d
135 :
nobodyさん:2014/02/10(月) 08:18:28.09 ID:J/5zHJ5d
>>124 フロントScala
バックJava
RailsはRubyと一緒に捨てた
TwitterってPHPエンジニアの募集してるんな
どこで使ってるんだろう
特定のコントローラーの特定のアクションだけ:layout=>falseにしたいのですが
before_filter exceptみたいな感じで指定することはできないのでしょうか
どうしてもrenderの直前にならざるをえないのでしょうか
>>140 すいません
クラスメソッドだと条件文が使えないのでフィルター(インスタンスメソッド)で使いたいのですが
方法はないのでしょうか
>>138 apiをphpで使うことを想定してテストとかやらすんや
143 :
nobodyさん:2014/02/11(火) 02:01:21.34 ID:oikpYNJm
>>141 > Symbol
> call the method specified by the symbol, which will return the template name
これ、コントローラのインスタンスメソッドなんだよね。
144 :
nobodyさん:2014/02/11(火) 02:25:45.15 ID:iwHGH8gS
本の通りにやってるつもりだがうまくいかねぇな
学習コスト高いわ
>>145 むしろ学習コスト高く無いとどこで思ったんだ?
>>125 huluに続くと言われてる
sidereelもRailsだよ
日本はどうしてRails需要がこんなにもないのか?
>>151 Rubyが日本発だから勘違いしてる人もいるかもしれないが、Railsは英語が使えない人は
お断りレベルで英語情報中心だからだと思われる
Railsのセキュリティ面が英語の情報に偏りすぎてて
日本で小規模で始めるには情報が足りなさ過ぎることだろうな
Rails Guideや和書で勉強した程度のRailsエンジニアに自社サービスを作ってほしくないもんな
パフォーマンスとか何も考えずに作るし
Railsに限らずウェブ系の仕事で飯食うのに英語読めないのはさすがに致命的
そうか?JavaやPHPは日本語の資料がそろっててすごいと思うよ
まぁ進歩の早いWEB系で英語力が重要なのは確か。
海外留学して英語がネイティブな人と仕事したことあるけどどう頑張っても勝てそうに無いと思った
これまで2ch連中と同じくグローバル化www状態だったのが
ウェブ系の仕事に就いたらまさに英語力が命だったでござるの巻
160 :
nobodyさん:2014/02/19(水) 10:20:17.36 ID:ELco+zCc
scope '/admin' do
resources :model
end
163 :
nobodyさん:2014/02/20(木) 10:26:12.50 ID:ATjg5jOf
>>163 >結局のところクルマを運転する上で、中身なんぞ知らなくてもいいだろ?使う奴は運転する技術だけ習得してこいって考え方がrailsだと思います。
土方向きだけのことはあるな
166 :
nobodyさん:2014/02/23(日) 14:40:29.71 ID:iS1220ph
class_eval()について訳がわからなくなってきた。
my_class = MyClass.new
my_class.class_eval do
def m1; 'hello!'; end
def self.m2; 'hello!'; end
end
上記の場合、カレントクラスのMyClassにm1というインスタンスメソッドが追加されて、
カレントクラスのMyClassの特異クラスにm2という特異メソッドが追加されるとう理解でいいですか?
167 :
166:2014/02/23(日) 15:12:35.43 ID:iS1220ph
ドメインモデルではない情報で、管理者設定画面などで管理できるものを扱う際は
データベースは作らず、読み書きできるYAMLを作るのが普通ですか?
管理者設定画面で設定できるものはDBに突っ込むべきだと思う
configみたいなテーブルでも作って。
wordpressだと汎用テーブル作ってとりあえずぶち込んでるな
171 :
nobodyさん:2014/02/26(水) 21:18:20.42 ID:kpHlwgHZ
173 :
168:2014/02/27(木) 00:58:46.01 ID:???
ありがとうございます
でもConfigモデルを作るとしてキーバリュー式だとform_forとかと相性悪いんですよね・・・
かといって1行しかあり得ないレコード作るのってどうなんでしょうか
Railsでなければ 本番 開発用 テスト用って感じで3レコードは作るのですが
ああ・・・次はMongoidだ
175 :
nobodyさん:2014/02/28(金) 21:18:49.55 ID:Sd8nPPeF
顧客からの要望で、異なるモデル(つながりは全くない)を一つのフォームで更新してほしいとのことなんですが、
この場合、Postするコントローラーはどこにすべきなんでしょうか?
resources: foo
resources: bar
とあって、foos#updateとbars#updaterがあるのですが
この場合、foosbars_controllerに#updateを作るべきなのでしょうか?
>>175 > この場合、foosbars_controllerに#updateを作るべきなのでしょうか?
色々考え方はあるけど、これが一番素直じゃないかな
自分はリソースという切り分けから、
レイヤーがもうちょい上になる業務よりのレイヤーで切り分ける感じにするかな
businessA_controller#updateみたいな感じで。
色んなリソース持ってるユーザーのマイページをmypage_controllerであれこれ処理したりしてる
179 :
nobodyさん:2014/03/01(土) 16:53:35.83 ID:kyl0LBj5
Rails4で、あるモデルの関連オブジェクトの数のテストが何回やっても通らないと悩んでいたのですが
調べてみたところshop.itemsは実際は3レコードあるのに、
shop.items.count => 1
shop.items.size => 3
このようにcountだと1が返ってました。
どういうことなんでしょう・・・
182 :
181:2014/03/02(日) 16:09:38.67 ID:???
さらにこんな不思議な現象が
puts shop.items.map(&:name)
=>
item1
item2
item3
puts shop.items.pluck(:name)
=>
item3
Rails3で
AbstractController::ActionNotFoundを表示しない方法ってありませんか?
存在しないアクション叩かれてエラーログが大量になるので困ってます
184 :
あ:2014/03/02(日) 19:42:02.77 ID:???
counter_cache
config.log_tags site:stackoverflow.com
186 :
nobodyさん:2014/03/02(日) 21:06:18.23 ID:f/Pqujp3
Imagesテーブルがあって、モデルが2つ画像を持っており、片方はimage_idというカラム名ですが
もうひとつはbackup_image_idというカラム名です。
@model.backup_imageとプロパティにアクセスしたときに、自動的にImageテーブルにクエリー走らせることはできないのでしょうか?
belongs_to :backup_image, class_name: 'Image'
189 :
nobodyさん:2014/03/03(月) 00:42:54.12 ID:eHHADPWD
一つのVPS鯖の中でマルチドメイン作って
複数のRailsアプリ(複数ドメイン)を走らせてる猛者はいる?
Railsアプリ1つにつきVPSを1つ契約するのが勿体なく感じてきた
別に猛者でもなんでもないと思うが…
結局Railsアプリのプロセスがどれだけメモリを食うかの問題じゃね
193 :
nobodyさん:2014/03/03(月) 12:05:52.25 ID:tPpkCX6/
なんで複数ドメインの話でまたこのコピペなんだよw
ただの宣伝でしょ
リンク踏んだらアフィリ貼りまくってるぺーじだったし
Rails4.0.1でclockworkを使い、
定期的にでっかいサイズのCSVファイルを作成してFTPサーバーにアップする処理をしています。
しかしこの処理が何回か実行されるといつもメモリオーバーのエラーになってしまいます。
どうやら一回のバッチのたびにメモリ使用量が20%ぐらい上がり、処理が終わっても下がらず
それが積み重なっていつか溢れてしまう、という現象のようです。
しかしどこが悪いのか分かりません。アドバイスいただけないでしょうか。
具体的には以下のような流れです。
csv = CSV.generate do |csv|
# 巨大なCSVを書き込む処理
end
ftp = Net::FTP.open('test-server.com', 'id', 'pass')
f = Tempfile.new('myfile.csv')
f.write(csv)
ftp.put(f.path, 'myfile.csv')
f.close
ftp.close
このバッチをclockworkで定期的に走らせています。
何かのリソースが解放されないままになっているのでしょうか?
↑ちなみにメモリ使用量はtopコマンドで確認しています。
バッチが2回ほど回ったときにtopコマンドを叩くと
メモリ使用量が40%ぐらいになってます。
ここでclockworkを再起動すると、また0%近くまで戻ります。
GC.start
>>199 ありがとうございます。
タスクの終わりにGC.startを入れてみましたが、メモリ使用量は下がらなかったです。
とりあえず1時間ごとぐらいに再起動することで乗り切りることにします。
低レイヤのこと分かってないとこういうのが辛いなあ
とりあえず巨大なCSVをオンメモリで作るのやめたら?
202 :
197:2014/03/04(火) 23:07:49.36 ID:???
>>201 意味するところがちょっと分からないです><
途中でTempfileを使っているのがオンメモリということでしょうか?
Fileクラスを使うということですか?この場合もFileオブジェクトを作るから同じですよね。
見当違いのことを言っていたらすいません。
最初の csv = のとこだよ
204 :
197:2014/03/04(火) 23:43:42.65 ID:???
CSV.generateを使わないということですか?
csvを作る処理は違うプロセスでやって
clockworkでは作成済みのCSVファイルをftpにアップするだけ、という流れでしょうか
最初の csv = で巨大な CSV 文字列を作ってるってことだろ?
それじゃメモリに巨大な文字列がのっかってるってことじゃん
じゃなくて、1行ずつファイルに書き込めって話
CSV.open は IO を引数に取れるから、詳しくはマニュアルを読め
> CSV.open は IO を引数に取れるから、詳しくはマニュアルを読め
間違えた。CSV.new な
>>206 わかりづらいです
もっと詳しく教えてくださいよ
208 :
197:2014/03/05(水) 00:26:50.66 ID:???
丁寧にありがとうございます!実践してみます。
巨大なString作ったらもう終わりってこと?
メモリ解放する術は無いの?nil入れても無駄だし。GC.startってそもそもちゃんと働くのかね
>>209 プロセスは一度確保したメモリは解放しないことが多いよ
これはRubyレベルの問題ではなく、OSレベルの問題
それ以前の問題として、巨大な文字列を作らずに済む方法があるんだから
まずはそれを試したらどうだい?
プログラミングって動くものは誰でも作れるけどパフォーマンスで差が付くよな
巨大って言ってるけど本当にメモリ食いつぶすほどでかいのかね
>>210 普通は他のプロセスが利用しようとしたら手放すよ
RubyはGCに問題が多々あるといわれるから、そこじゃねか
というかプロセスがメモリ解放できなかったら常駐プログラムとかどうするんだ?
C言語のfree()とかってOSレベルではメモリ解放してるわけじゃないのかな
何にせよ常駐プログラムで巨大メモリを使うのはよろしくないね
巨大メモリを使わないようにするか、fork するなどして別プロセスで動かすようにするかのどっちか
いや巨大どうこうじゃなくて、メモリ解放できないならどんなにチビチビ使っててもいつかメモリが破綻するじゃん
常駐の体を成してないよねそれ
スレッドタイプのWEBサーバーなんかはどうやってメモリ管理してるんだろうな
すげー興味でてきた
>>217 使わなくなったメモリを再利用すれば多くの場合は問題ない
巨大な文字列などは連続した領域が必要なので再利用できない場合がある
チビチビ使う方が再利用しやすい
ほ〜勉強になるなぁ
フラグメンテーションとかそういう話だっけw
文系出身な俺には重いな
>>220 そうそう
RubyのGCはメモリコンパクション(デフラグメンテーション)をやらないので、今回ような使い方をすれば問題になる可能性がある
おお!やっぱそのことですね。RHG読んだ時に見た覚えがあるなぁ
Rubyが採用してるGCのスタイルがコンパクションと相性悪いとか何とか
やっぱRubyの弱点はGCだな
GCってGameCube? 何いってんの
226 :
nobodyさん:2014/03/09(日) 01:42:11.20 ID:givZU1Ab
ボタンが押されたとき、JavaScriptでHTMLの一部を描画したいんですが、
$.get("api/action", {}, function(data) {
$("bar"),append ($(data));
});
def action
render :partial=>"foo"
end
とか書いていたら、dataには改行コードしかありませんでした
コンソール見たら、actionは呼び出されており、指定したパーシャルがrenderされていることは確認できたのですが・・・
227 :
あ:2014/03/09(日) 02:05:33.45 ID:???
画像や幾つかのテキストを投稿できるシステムがあり投稿前にプレビューできるんですが、
get 'articles/edit'
post 'articles/preview'
post 'articles/post'
class ArticlesController < ApplicationController
def edit
end
def preview
end
def post
end
end
こんな感じで、編集画面でフォーム送信 → プレビュー → プレビューで確認して投稿 というのを考えてましたが、
edit → preview でfile_fieldの値が引き継がれません。
file_fieldの値を別の画面に引き継ぐことは無理なのでしょうか?
質問する時はソースを略すな
>>229 すいません
他にどの辺りのソースも書けばいいでしょうか・・・
>>230 無理なんですか・・・
ユーザがアップロードした画像をメモリの中におさめて別の画面の<input type="file">にセットするとかはできないんですね・・・
233 :
nobodyさん:2014/03/09(日) 23:24:37.25 ID:rV1atWDh
以前やったときは:
投稿に確定フラグを用意して、
確認画面に行くときに確定フラグOFFで保存(画像も)してしまい、
確認取れたら確定フラグをONにする。
別途、長時間(1時間とか1日とか)確定フラグOFFのままのものは、バッチで削除する。
とした。
面倒だし、未確定のものが見えてしまうことを避けるためにscopeの設定に注意、
という残念なアプローチなので、あまりお勧めはしない。
>>233 もっと詳しく書いて下さい
あまりにも説明がザックリすぎます。。。
>>234 >>233 で分からないようならかなり勉強が足りない
Railsは広範な知識が前提になるから、君にはまだ早いかもしれない
>>236 すいません、
>>234と
>>235は私ではありません
>>233 ありがとうございます
そういう無理矢理な方法を取らないといけないという時点で大きなヒント
IE8ではHTML5も使えないですし、
やはりユーザーが一度プレビューでも確認しようとする画像はサーバーにあげるしかないんですね
>>237 HTML5とか関係ないよ
セキュリティ上の制約からfileフィールドに値を与えることは不可能
それができたら、ローカルのファイルを取り放題になるからね
サーバに上げる以外の方法はない
tmpファイル作るでは駄目なの?
何で悩んでるのかがイマイチ分からん
画像の保存先がDBにしろファイルシステムにしろ
そこへアップするのではなくtmpファイル作る
一対多の親子関係の2つのテーブルがあって親のレコードを取得する時に
あるビューでは子のレコードを最新の5件だけ、別のビューでは10件という風に
したいんですけど可能でしょうか?
scope
243 :
「ガスライティング 集団ストーカー カルト」で検索を!:2014/03/10(月) 14:21:04.90 ID:CT4FzesB
★マインドコントロールの手法★
・沢山の人が偏った意見を一貫して支持する
偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法
・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法
↑マスコミや、カルトのネット工作員がやっていること
TVなどが、偏った思想や考え方に染まっているフリや常識が通じないフリをする人間をよく出演させるのは、
カルトよりキチガイに見える人たちを作ることで批判の矛先をカルトから逸らすことが目的。
リアルでもネットでも、偽装左翼は自分たちの主張に理がないことをわかっているのでまともに議論をしようとしないのが特徴。
,,,
windowsのrailsでnewしてできるファイルのエンコードをデフォルトでutf-8にすることはできますか?
railsinstaller-2.2.1使用
すべてのファイルにマジックコメントをつけろってこと?
248 :
nobodyさん:2014/03/16(日) 00:46:27.85 ID:sX6tK28V
MySQLのVARCHAR型のカラムにこんなデータがあり
テストですよ!\r\nテスト!\r\nテスト!テスト!テスト!
そのまま出すと(
[email protected])
テストですよ!\r\nテスト!\r\nテスト!テスト!テスト!
こうなるんです
=simple_format @hoge.text
[email protected](/\r\n/, '<br/>')
こんな風にしても
テストですよ!\r\nテスト!\r\nテスト!テスト!テスト!
こうなるんです・・・
MySQLでの\r\nがどうして\r\nで置換できないのでしょうか
こうなるってどうなるの?
\\r\\nってオチでしょ
251 :
248:2014/03/16(日) 00:59:39.49 ID:???
こうなるというのは「テストですよ!\r\nテスト!\r\nテスト!テスト!テスト!」が表示されるという意味です・・・
でも確かに.gsub(/\\r\\n/, '<br/>')でしたら置換されました・・・
MySQLで\r\nで登録されている文字列はビューに来る頃には\\r\\nになってるんですか・・・
それでしたら組み込み関数のsimple_formatも使えないことになりませんか?
こうなるじゃわからん。
ちゃんと口で説明しろ
253 :
nobodyさん:2014/03/16(日) 01:20:55.82 ID:5H4+EUWX
>>251 250が言わんとしている事をもう少し分かりやすく言うと、
今回のケースではMySQLには改行コードではなくて
'¥r¥n'
っていう文字列そのものが入ってる。
Rubyで
print '¥r¥n' # 改行されずに¥r¥nっていう文字列そのものが表示される
と
print "¥r¥n" # 改行される
の実行結果を比較すると理解できるかと。
254 :
253:2014/03/16(日) 01:25:22.32 ID:5H4+EUWX
>>253 で文字化けしてる部分はバックスラッシュの事だと読み替えてください
nl br rails site:stackoverflow.com
256 :
nobodyさん:2014/03/19(水) 13:34:27.57 ID:XfOUweW8
10文字より長くすれば?
258 :
nobodyさん:2014/03/19(水) 17:20:29.04 ID:XfOUweW8
>>257 レスありがとうございます。
何を10文字より長くすればいいのでしょうか?
description
260 :
nobodyさん:2014/03/19(水) 18:46:53.11 ID:XfOUweW8
>>259 descriptionを10文字より長くしても駄目でした。
Failed assertion, no message given.
1 failures
のままです。
261 :
nobodyさん:2014/03/20(木) 07:58:58.79 ID:8noYVroQ
app/assets/stylesheets/配下のCSS(SCSS)ファイルはAsset Piplineでコンパイルされて一つになるので、
コントローラごとに適用されるCSSを分けることは出来ないのでしょうか?
layouts/application.html.erb に
<body class="<%= controller_name %>">
と書き換えて、後は scss で分ける。
scss だったら一段階層を増やしてあげるだけ。
>>263 なるほど、クラスで分けるのがデフォなんですね。ありがとうございます!
266 :
nobodyさん:2014/03/25(火) 10:58:40.13 ID:cbd1slMB
『RailsによるアジャイルWebアプリケーション開発 』で
アプリケーションを作っている途中、カートを作るところまでいったのに
サーバーを実行しても、初期の"Welcome aboard"のページになってしまう
ようになってしまいました。
ファイルはあるのですが、ファイルを読み込むようにすることはできるのでしょうか。
267 :
nobodyさん:2014/03/26(水) 06:35:55.97 ID:XaAxxKBe
rm public/index.html
質問です。
[[親A.-子1-孫1], [親A-子2.], [親B-子1-孫1], [親A-子1-孫2], [親C]]
のような配列があり、各関係はハイフンで区切られています
この配列を
[親A[子1[孫1,孫2],子2], 親B[子1[孫1]], 親C]
のように親子関係を、同じ位のものは同じ階層の配列に
下のものはその中に配列として格納
というようなことをしたいのですが、rubyに慣れておらずサンプルコードいただけませんでしょうか
Ruby初心者スレへどうぞ
migrationを最近のDBからフラットに生成する方法ってありませんか
既存アプリをベースに新規アプリを作りたいのですが
既存アプリはDBの拡張ライブラリを使っていた時期があって
その環境を整えないとmigrationが通らないのですが今は使っていないのでスキップしたい
db/schema.rbにありました
サンクス
RoRをやり始めてから早2年
コーディングなんかよりも
環境のデプロイが辛すぎる
使い慣れたgemを使おうにも
新たに契約したVPSでは
毎度のこと環境(選択できるOS)が変わる
それに合わせてRubyだのPHPだのphp-fpmだのnginxだのapacheだのImageMagickだのと入れていくわけだが
バージョン相違の依存度のせいで動かなくなったりエラーが出たり頻発
いろいろ試してやっとで動かせるようにしても
また次回も新たにホスティングを契約すると同じことをしなくちゃならない
これだけで実に丸2〜3日は掛かる
正直辛すぎる
あらかじめ
コマンド一つで
決められた環境を全てデプロイしてくれるような自動化が作れればいいのになぁ
bundler使いましょう
>>275 依存関係を弱くするのは初心者にとって難しいかもな。がんばれ。
chef
vagrant
docker
chef使わなくても慣れれば普通に数時間以内で終わる件
こんなブログ記事があったのだが
今すぐ辞めて欲しい、「Ruby on Rails勉強してます」
http://blog.sumyapp.com/2013/07/no-recommend-rails/ で、記事の途中にこんなくだりがあった。
>この記事にぐさっときた人、プログラミング初心者にとっておすすめしたいのはこの書籍だ。
>なれる!SE 2週間でわかる?SE入門 (電撃文庫)
>ぜひ頭の硬いプログラミング見習いの方には読んで頂きたい。技術職における最も大事なことはこの本に全て書いてある
やはりをなれるSEを読むようなクレバーな技術者はRuby on Railsなんてオモチャは
遠ざけるのだな。
抽象化のバランスでいうと、今のRailsを初めとするフレームワークじゃ、
結局DB、SQLやWebサーバの詳細を結局勉強するはめになるわけで、
アセンブラやC言語を知らずにRubyを使えるレベル、とまでにはなってないよね。
いきなりRailsをやるより、PHPとApacheで素のWEBアプリをまず作ったり
した後の方がRailsのありがたみが良くわかるんじゃないだろうか。
>>285 Rails使わずにRubyでWEBアプリならまだしも、PHPはちょっと
>>283 それ、後の方の巻で出てくるソフト開発の描画が酷かったやつだな。
288 :
nobodyさん:2014/04/18(金) 19:51:14.01 ID:HvjAAhgy
>>286 素のRubyとの比較だと、やっぱりPHPの方が何かと簡単だ(例えばSessionとか)。
個人的には、Rackから始めるのがいいと思うが、Rackを入り口に扱っている情報ってあんまりないよね。
290 :
nobodyさん:2014/04/19(土) 16:05:29.73 ID:h92l0Mdq
>>288 Web制作板のスレタイを SEO で探したほうが答えが手に入る可能性が高い
291 :
あ:2014/04/20(日) 19:26:42.59 ID:???
Google
パンダアップデート
ペンギンアップデート
292 :
nobodyさん:2014/04/23(水) 01:16:16.25 ID:dat1Z6dq
お気に入り機能の実装ってどういう感じでやってますか?
294 :
nobodyさん:2014/04/24(木) 01:05:04.94 ID:Xeh6xycu
class Product < ActiveRecord::Base
has_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はセレクトボックス、新規作成の場合はテキストボックスなどでわけられるのが理想なのですが・・・
295 :
あ:2014/04/24(木) 09:03:50.11 ID:???
>>294 taggingはproductに毎回付随していて、tagは全てのタグの一覧と言う認識でOK?
それならfields_forで入力させるのはtaggingで、taggingを保存する際にafter_saveで
そのタグが新規かどうかを判定して新規ならtagsを保存すればいいんじゃないのかな
といっても要件がよく理解できてないから的はずれかも
>>296 ありがとうございました。
ただし fields_forで:taggingを指定しても出てこないです・・・。
ループで回してnew_record?で判定することにしました
ありがとうございました。
299 :
あ:2014/04/25(金) 16:27:02.89 ID:???
最近はじめたのですが、scaffoldってデータの管理画面を作るものって考えであってますか?
302 :
あ:2014/04/29(火) 20:13:42.89 ID:???
CRUD(クラッド)とは、ほとんど全てのコンピュータソフトウェアが持つ永続性[1]の4つの基本機能のイニシャルを並べた用語。
その4つとは、
Create(生成)、
Read(読み取り)、
Update(更新)、
Delete(削除)である。
ユーザインタフェースが備えるべき機能(情報の参照/検索/更新)を指す用語としても使われる。
ttp://ja.wikipedia.org/wiki/CRUD
>>301 scaffold - (建築・修繕・改装の際の)足場, 仮構え (scaffolding);
(高層建築のガラス窓拭き用や画家の制作の際の)つり足場, (高所作業用の)ゴンドラ
(研究社 新英和大辞典 第6版から引用)
>>301 ぶっちゃけ商用レベルで管理画面作る時は使わない
手軽にRESTfulなMVCモデルを作れるものくらいの認識
305 :
nobodyさん:2014/04/30(水) 22:15:24.71 ID:CrhybghX
306 :
あ:2014/05/07(水) 01:41:55.35 ID:???
Hoge.find(:all, include: :fuga)
これってRails2.0時代の記法なんですかね?
3.2とか4系だとfindは検索したい列名しかとらない気がするんですが
>>307 そうです
3.xからは Hoge.all でいけます
>>308 ありがとうございます
bullet使っていると、:includeつけろってうるさいんですが
これってこのgemが3系のまま変わってないってことですよね
311 :
nobodyさん:2014/05/13(火) 00:47:11.48 ID:jc+wbYf6
>>293 thank you.
you are good japanese!
良い日本人がいるんじゃなくて、日本人はみんな良い人だよ
このスレ、外国の人も住んでるの?
>>312 素で言ってるとも思えんので何某かのネタなんだろうけど、笑う所が解らん。
流行りのコピペなのかな。
日本語のサイトである2chに英語のリンク貼ったって役に立たねーじゃねーか
という皮肉かと
316 :
nobodyさん:2014/05/14(水) 23:43:03.92 ID:0Cc29kMy
Railsのview(haml)でselfであるクラスの名前知りたいんですが、
self.class.nameがnilです。
名前がないクラスなんですかね?
317 :
nobodyさん:2014/05/16(金) 21:13:11.48 ID:uX+vzxIx
>>315 いや、俺が質問者で、英語の検索結果くれたから、英語で返事したんだよ。
当方TOEIC900近くはあるから問題なく読めて解決した。
皮肉のつもりはないよ。ありがとさん
319 :
nobodyさん:2014/05/18(日) 23:12:34.62 ID:hk8drueV
達人な皆様Rails4で複数画像アップロード方法の詳しい説明がのっているサイト知りませんでしょうか?
321 :
nobodyさん:2014/05/18(日) 23:23:47.40 ID:hk8drueV
早速のggrks有難うございます。ですが大体がRails3情報で4が一部あるんですが詳細なコードがなく、
できればjquery-fileupload-railsあたりを使いたいと考えています。
jquery-fileupload-rails+carrierwave+Rails4このあたりで詳細サイト知っていたら教えて下さいませんか?
3も4も大して変わらん
3のサイトのやつを4で試して動かなかったらまた聞けばいい
まずは試せ、手を動かせ
Railsって便利だけど、便利がゆえに振り回されたりした記憶もある。
例えばvalidation。
多対多(Hoges : Moges)の関係にあるモデルの一方(Moge)をsaveしようとすると
"Hoge can't be blank"というvalidation errorが発生して
saveが失敗してしまい困った記憶がある。
慣れないfield_forを使っていたせいもあり、
どうしたら良いのか分からずその時は敗北宣言的に迂回してしまったが、
未だに気になってる。そういうのがチラホラあるので勉強しなきゃなと。。
325 :
nobodyさん:2014/05/22(木) 22:21:50.23 ID:R9eMlpe5
railsってわけじゃないけど、客が住所入力した時に自動的にエリア入力できるようなシステム作ったことある人いる?
例えば上野浅草エリアとか
またこりゃざっくり仕様だね
うんこって書いたらトイレとかが自動で選択できるやつだろ?
googlemapsgeocoding使ったのなら
329 :
nobodyさん:2014/05/23(金) 14:47:19.40 ID:stzGS3lF
ふくおかまで来いってか
331 :
nobodyさん:2014/05/23(金) 21:14:44.51 ID:shajvKcu
単純に変換テーブル持ってるだけでしょ
>>331 googleのapiつかわんのなら、国土交通省のサイトから座標データのcsvとってきて作れ
334 :
nobodyさん:2014/05/24(土) 21:26:52.46 ID:1qo8C4Ld
Runしたらこんなエラーが出るんだけど
Documents/Aptana Studio 3 Workspace/sybentpro/app/controllers/application_controller.rb:1:in `<main>': uninitialized constant ActionController (NameError)
NameErrorだから、名無しなんだろ
336 :
nobodyさん:2014/05/26(月) 02:20:32.01 ID:5+hysLvg
>>332 ありがとうございます!
>>333 api使えば世界対応も可能っちゅうことかもしれませんね。あざす!!
ネットワークゲーム作ってて単にControllerからJSON返したいだけなのだが、ruby tutorial読んでても全然出てこないのだが何を見て勉強すべきだったんでしょうか?
rails render json でぐぐれ
>>337 算数の教科書見て応用力を身につけるべき。
プログラミングなんて決まったフォーマットの作業手順書を書いてるのと同じなんだけどなぁ
なんだかんだで教えるツンデレーズ
モデルインスタンスの全てのカラムの値を削除したいんですが、そういう場合に
@instance = nil
@instance = Model.new
ってやる以外にいい方法ないでしょうか?
動的にModelを変更したいのでカラム名などがリテラルで書けないので、なんか良い方法ないかなと思ってます。
344 :
nobodyさん:2014/05/31(土) 18:38:38.82 ID:J5yjoJnZ
最初に nil を代入する意図は?
345 :
343:2014/05/31(土) 19:24:39.23 ID:???
>344
ありがとうございます。@instance = Model.new だけで十分でしたね。。
SQL直でいいだろ
347 :
343:2014/05/31(土) 19:28:59.33 ID:???
348 :
nobodyさん:2014/05/31(土) 20:33:30.11 ID:J5yjoJnZ
newしちゃう(新しいidを振る)のが嫌なら #attributes= というメソッドもある。
Model.update_all(column: nil)
350 :
nobodyさん:2014/06/01(日) 17:47:59.67 ID:MVvg2g7w
皆様、最寄駅を表示するシステムってどうやって作ってます?
あれって、何個まで表示するとか、何かやっておかなければならないアルゴリズムってあるんですか?
海外バージョンでもやるとしたら、また気をつけなきゃならんことがありますでしょうか?
グーグルだけでもいけちゃいますかね?
なんというザックリな質問
352 :
nobodyさん:2014/06/02(月) 01:04:22.83 ID:cdjAC42f
>>351 すんません。ざっくりとしかイメージがわいていないのでw
国内対応だけだったら駅と緯度経度データベース作って、距離検索でしょうけど。グーグルとかの最寄駅はどういうアルゴで出るのかね。
海外対応までしようと思ったらグーグル使わんとにっちもさっちもいかんのか。
経験者がいれば、ざっくりとした回答が欲しかった
現在位置とズーム量から
表示中のランドマーク取得でいけそう
354 :
nobodyさん:2014/06/02(月) 21:41:15.02 ID:IKV43VQr
> labelのブロックで色々大きさとか調節したい
すればいいじゃん
Swiftがキモい件はがいしゅつです
Rspecでエンドツーテストをする際、
コントローラのメソッドから特定の返り値を取得したいのですが、
stubを使って書く際のObjectをどのように指定したら良いか分かりません。
[ここに何かが必要だと思うけど分かりません].stub(:method).and_return(value)
スタブで取得することは可能でしょうか?
可能な場合どのようにオブジェクト指定したらよいのでしょうか?
359 :
nobodyさん:2014/06/03(火) 20:38:27.53 ID:Ip12GRTV
>>355 えぇ、それはできますよ。
>>354にある通り、ラジオボタンやチェックボックスを内包したラベルを作りたいのです。
これがrailsから導く方法が難しいんですよね。
>>359 FormBuilder#label はブロックを取れる
361 :
nobodyさん:2014/06/04(水) 19:29:38.02 ID:6xizC0Ei
>>360 なるほど。なかなかハードル高そうですが、手っ取り早く記述だけで何とかなるもんじゃないんですね。
先の例のもう片方のように。
<%= f.check_box 'check1' %>
<% f.label 'check1' do %>
<font size=7>Check1</font>
<% end %>
363 :
nobodyさん:2014/06/04(水) 21:51:45.24 ID:efQEBuMU
>>362 ありがとうございます!!!!!
さすがです!!
相談させてください
今までDeviseとconfirmableを使い
メール認証のみで会員登録制度を強いてきました。
しかし、この度OmniAuthを使い
FacebookやTwitterを利用し当サイト利用の敷居を低くしようと思っています。
しかし気になる問題があります。
今までは会員登録だったため
登録が行われると
UserテーブルにUserレコードが生成され
且つ関連テーブルのProfileにもレコードが出来ていました。
Userには登録メアドのemailカラムを含め、アカウント名であるaccountカラムが、
Profileにはニックネームのnicknameカラムなどがあります。
そして、会員が投稿すると、これらアカウント名やニックネームが表示されたり、
サイト内でのメッセージのやりとりはemail宛へ転送されます。
もし、facebookやtwiter認証した場合はこれらは全てnilになりますよね?
OmniAuthで認証した会員の場合はUserレコードやProfileレコードは生成されませんよね?
となると、何を元に誰が投稿したのか?といったものを取得できるのでしょうか?
facebookやtwiter認証したアカウントと今までの会員のバインディング情報は?
>>365 そこらへんをどうするかイマイチぴんと来ていません
調べたところOmniAuthでもTwitterの場合だとメアドが取得できないみたいなので
どのようにして正しいメアドを取得してUserテーブルのemailカラムに格納するか?
今までの数千に渡るユーザーのuid(ユニーク)はどうするかなど
似たようなこと(deviseのメール認証必須会員登録制→OmniAuthでTwitter、Facebookでも登録できるように)をしたことある人がいたらアドバイスをください
こういうやり方が定石?
初ユーザーが訪問
↓
Facebookアカウントで登録ログイン
↓
トークンごしに取得できたauth['name']など
ユーザーの各種情報を利用して
Userレコードを追加(メール認証しなくてオーケー)
それ以降のコールバックについては、userレコードが存在する場合はuserレコードの追加は行わず
ただのログイン処理だと見なす
ただし、この場合Twitterだけメアドが手には入らないから切り分けが必要そう。。。。
そもそも登録の際にニックネームとメアドしか聞いてなかったから
Twitter認証してメアド登録してもらうほうが手間がかかってしまう気がする。。。。
Rails3で
なんらかのリンクをクリック
非同期通信
結果を表示
という事をよくやるのですが、大抵のサイトではクリックしたあとにグルグルと画像が回ると思います
これをRailsでやろうと思うとjqueryで無理やりフックしないとダメですか?なにかしらスマートな方法がないかなーと考えていたのですが
馬鹿には無理
ワロタw
ajax:send、ajax:complete あたりに引っ掛けるのが自然ではなかろうかね
railsって
アクティブユーザーがそこそこ賑わっていて常にユーザー情報の更新や
投稿が行われるサイトは
よーく設計してdalliとかredisを使いつつページキャッシュやフラグメントキャッシュも使いこなさないと激重くない?
indexとかも貼るべきには貼ってるし検索とかはsolrを使ってる
しかし糞重い
ページがサクサクロードできるようなサイトって
変更あったら書き出してページキャッシュか何かにしてんの?
さくらVPS SSD2GB 2コアを使ってても
こんなに遅く感じる
>>372 何が重いの?プロファイリングしてみた?
Railsで重いサイトは大体は集約関数周りでこけてることが多いな
ページキャッシュはある程度の規模からやってるとは思うけど
フラグメントキャッシュまでやってるところはあまりなくね?
>>373 miniprofiler使ってる
時間がかかってるのは
複数のテーブルを紐づけて
関連先のカラムでソートかけて取り出したりとかが重いね
それにロードするごとに沢山のコードが動く
会員制だから仕方ないよね
ちなみに会員制敷いてると
ページキャッシュ無理じゃね?
あと毎ページのロードでメッセージ件数はリアルタイムでcountしてるんだが
カウンターキャッシュみたいに
countカラムを用意するのが定石?
そしてメッセージの送信後に送信先相手のcount件数を計って更新ってな具合にすべきかな?
>>374 各会員専用が主だとページキャッシュは無理だね
一部なら、そこだけ非同期にしてキャッシュする
MySQLかな?JOIN先ソートとか苦手だけど、それが重いなら対処すべきよ
きちんとインデックス使われてるのかね?
たくさんのコードってSQL?会員制だから仕方ないとかは内容次第だろうね
共通部分をできる限りキャッシュするしね
ソートがインデックス使ってないというオチだろ。
>>376 一部ならそこは非同期ってなると
結局フラグメントキャッシュになるよね?
>>376,
>>377 そうMySQL
きちんとインデックスって
これらを守ってインデックス貼ってるんだけど
・○○○_idなどアソシエーションに使われるカラムには全てindexを貼っている
・検索対象となるカラムには全てindexを貼っている(且つsolrを利用)
え、なに、スロークエリすらチェックしないで質問してんの?
redisは爆速とか聞くけど
そんなに早いの?
ニコ生みたいにリアルタイムで更新されまくるような仕組みもイケちゃう系?
>>379 SQLクエリ見たところで
何がボトルネックになって
こんなに時間がかかってるのか分からない
1つのコード実行した、それだけでも時間がかかりまくってるし
>>378 非同期部分を除いてキャッシュするって意味
フラグメントキャッシュは概念全然別
>>381 時間がかかっていることが多いSQLの実行計画を見るのは定石
explainしたりslow.log見たり、ぼやく前にまだやれることはたくさんあるぞ
>>383 slow.log見ても理由は分からんだろう
10万人の会員持ってるサイトあるけどアプリサーバーさくら8GB+DBサーバーさくら4GBだけで全然回ってるぞ
キャッシュも殆ど使ってないしリアルタイム制すごい高いけど余裕で400ms以内で返せてる
Railsが悪いんじゃなくて設計が悪いんじゃない
何が遅いかも調べられてないのにスペックだけ良くしても意味が無いよ
>>385 例えば常にアクティブユーザーが100人いたとして
ツイートするごとにユーザーのポイントが加算されるような
究極のリアルタイム性の高い計算と更新が行われるような会員制だと
キャッシュなしじゃ厳しくないか?
>>385 ちなみに
apache?
nginx?
だとしたらMySQLの設定側(チューニング)に問題あるのかな
混んでないときでも
1ページ開くときにクエリ実行だけで1300msとかかる
重いページだと3000ms以上
どうなってんだー
388 :
nobodyさん:2014/06/12(木) 09:36:29.91 ID:Jzl38UQK
image tag使うと
出力時になぜか
○○○.jpg?758856
みたいに訳の分からないパラメーターが勝手につくんだけと
これって無くせる?
キャッシュされないようにか
>>391 えっ?
?173747みたいなのがつくとキャッシュされてるの?
assets使ってprecompileしてるから
?27447みたいなのが付くのかな
これが付くとgoogleの画像検索とかにヒットしなくなりそうじゃない?
>>392 Rails関係ないからこれはおまけだからな!
画像ファイルをキャッシュする設定にしていた場合ブラウザは
「キャッシュが残っていればそれを使うし、サーバーには問い合わせない」
から、サーバー上でファイルを変更してもその変更したファイルを取得してくれない
これは画像だけじゃなくてcssとかもそう。変更したのに変更されてない不具合の9割はこれ
その対策としてどうすればいいかというと
hoge-hoge.jpgってファイルを使っていたなら、ファイル名をhogehoge-hoge2.jpgみたいに変更すれば違うファイルとして扱われるからキャッシュを無視してリロードしてくれる
でも全ファイル毎回ちょこっとずつファイル名かえるなんて正気じゃないよな?
そこで、hoge-hoge.jpg?20140613みたいな感じで?とキーを送る、そうすると?以降だけ変えれば違う名前のファイルとしてキャッシュを取り直してくれるんだ
これによって俺らはファイル名を毎回変更するなんて手間をかけずにみんなに新しいファイルを届けられてるわけだ
んで、この手法はもう15年以上使われてるから画像検索うんぬんとかなんも心配しなくてもいい感じにやってくれるよ
>>393 非常にわかりやすい説明をありがとう
なるほどね前回のキャッシュを読み込ませないための工夫だったってことね
そして、Googleなど検索エンジンは
?以降は無視して画像をインデックス化していってくれてるってことか
ありがとう
rails4に移行していないオイラに
turbolinksの素晴らしさと優位性を力説してもらえないだろうか?
>>395 リンクをクリックすると、ページ遷移ではなく Ajax でサーバにアクセスする
返ってきた結果から body 要素の内容だけ抜き出して置き換えてくれる
またブラウザのヒストリも書き換えてくれるので、戻るボタンもきく
スタイルシートやスクリプトを評価しなおさなくて済む分、早い
プログラマは上記の処理内容をほとんど意識する必要がなく、お手軽
へぇ、便利そう。
ゲームサーバとしてJSONしか返さんのならrails3で十分?
JSONしか返さんのならrailsであることが余計
>>396 どれくらい早くなるの?
俺の見解だと
Rails3みたいに違うページをロードしても
同じスタイルシートやjsが指定されていたら
キャッシュから読み込まれるから早い遅いをあまり感じなく思えるんだけど
>>396 それにページによってヘッダ内の読み込むjsを変えてる場合
それだとturbolinksは使えないってこと?
要は<head>内のスタイルシートやjsを固定して読み込みを早くしませんか?ってことだよね?
>>400 jsを変えてる場合は使えない
ただ普通はsprocketsで連結してる前提
>>399 読み込む速度だけではなく、それを評価する速度も含む
>>403 あれ、そうなのか。じゃこのまま使うことにします。
>>403 railsで俗に遅い遅いと言われる所以は
そこよりもクエリの問題になっている場合がほとんど?
ruby
>>407 そうね
言語が効いてくるには Twitter ぐらいのアクセス数がないとね
>>407 railsが遅い問題とturbolinksで解決できる問題は関係ない
turbolinksが解決してるのはクライアントサイドの速度
レスポンスが遅いのとスループットが低いのを混同する奴がいるけど
アクセスが少なくてもレスポンスの遅さは影響する
Railsが遅いのはRubyとアプリサーバの影響の部分が大きい
フレームワークの性能が悪くて遅いCakePHPなどとは一緒にしてはいけない
>>410 Rubyやアプリケーションサーバが覿面に効いてくるのは相当のアクセス数がある場合だけだよ
たいていはDBアクセスがネック
>>410 RubyはJSON処理やアルゴリズム系は速いが
DBアクセスのライブラリなどが糞だと有名だな
ActiveRecordはお手軽だがパフォーマンスめっさ悪そう、とチュートリアルやりながら思ってた
某有名FWの比較ランキングを見ると
JSONに変換して返すだけの計測は健闘しているけども
DBが絡むとボロボロな結果が出てるよね
>>412 RubyのDBアクセスライブラリはほとんどCライブラリのラッパだよ
それがクソってことはCライブラリがクソってことかいな?
>>413 SQLでもパフォーマンスを出すためにはテクニックが必要なように、
ActiveRecordもパフォーマンスを出すにはそれなりのコツは要るね
丁度ActiveRecordのパフォーマンスの話が上がってるから教えてください。下記のやり方でサイト内メッセージシステムを実装しています。
「メッセージ受信ページ」を開くと、たった10件表示するだけなのに4秒近くかかります。
コードがシンプルなはずなのにページのローディングが遅すぎて問題点も特定できません。どこがネックになっているか分かる方はいらっしゃいませんか?
gem「mailboxer(
https://github.com/mailboxer/mailboxer)」
-notifications 10万レコード
-conversations 10万レコード(上記テーブルと対にしている)
-receipts 20万レコード(上記テーブルにぶら下がる。つまり1つのconversations(メッセージ)に対し「送信者」と「受信者」の2レコードがぶら下がる)
上記3テーブルから構成。メッセージのやりとりを可能にするgemが「mailboxer」
これを利用して現在ログイン中の受信メッセージを表示する時に下記のように記述しています。
【コントローラ】
@messages = current_user.mailbox.inbox.page(params[:page]).per(10)
【ビュー】ここで表示しているのは送信者の名前と、送信者のプロフィールページへのリンク。題名とメッセージ詳細ページへのリンク。それと受信日時くらい
<% @messages.each do |m| %>
<tr <%= 'class=unread’ if m.is_unread?(current_user) %> >
<td><%= check_box_tag "id[]",m.id %></td>
<td>
<% if m.is_read?(current_user) %>
既読
<% else %>
未読
<% end %>
</td>
<td> <%= profile_link(m.last_sender) if m.last_sender != current_user %><%= "自分" if m.last_sender == current_user %> </td>
<td><%= link_to m.subject, show_messages_path(:id => m) %></td>
<td><%= today_datetime(m.last_message.created_at) %></td>
</tr>
>>416 細かくは見てないが N+1 問題じゃなかろうか
詳しくはぐぐればいっぱい出てくる
>>415 mysqlでlibmysql以外のC実装のものを教えてください
>>417 include付ければいいだけってこと?
>>416 まずはログを見よう
そして原因を突き止めるのが先決だ
>>420 とりあえず簡単に試せそうだからやってみた
@messages = current_user.mailbox.inbox.page(params[:page]).per(10).includes(:profile)
としたら下のエラーが出たよ
Association named 'profile' was not found; perhaps you misspelled it?)
テーブル名は100%間違えていない
profileテーブルはuserテーブルに属していて「nickname」などのカラムを持つ
なぜエラーになるんだorz
>>418 俺も興味ある
mysql2だとライセンス問題あるからね
RailsってMySQLに対してPostgreSQLの採用比率が
他の言語、フレームワークより高いみたいね
特に海外で
herokuが理由かね?
427 :
nobodyさん:2014/06/15(日) 06:42:29.71 ID:4wiy7qvn
mysqlはphpが大好きでphpにだけ特権を与えてるのは有名な話
しかしphpにはフラレて
mysqlへの接続でGPLでないCライブラリが使えるのはphpだけってのも有名な話
はい、mysql叩きが始まりました
mariaにしたらlibmysqlから解放されるの?
socket経由なら関係ないだろ。
gem のcancanってmodelの構造がほぼ同じものを役割のみで分けるために使うものですか?
modelのカラムが全然違うものを無理やりくっつけて、cancanを使うと変になりますか?
model
・admin
・operator
に分ける場合、役割だけが違う。modelの基本的なカラムは大体同じ
・human
・dog
・bird
に分ける場合、基本的なカラムが違う。
これをcancanで分けると、、なんか難しくなる。
ちゃんと説明できてますでしょうか。。
ふげー分かりにくい説明だ
Twitterで言う通知メール(フォローされましたとか)をいい感じにラップしたgemないですか?
一個一個送信処理書けばそれでいいってのはそうなんですが
439 :
nobodyさん:2014/06/17(火) 02:21:46.07 ID:/dvue0X5
rails4.1+rspecのプロジェクトで初めてGuardをやって見てるんだけど、
ただINFO:Runnningテストファイル名しか表示されなくて、肝心のテスト結果がわからないんだけど、
これってどういうことなの?
受託開発でmysql2を使っているのですが
何かライセンス問題があるのでしょうか?
MITライセンスですよ
Twitter作ってるんですが
フォローしてるユーザーのタイムラインの表示ってかなり時間かかっちゃうと思うんですがいい方法ありませんか?
User
id:
account:
Follow
id:
user_id:
follow_id:
Tweet
id:
text:
user_id:
こんな感じのDBだとして
user_ids = Follow.where(user_id: session[:user_id]).select("follow_id")
tweet_list = Tweet.where(user_id: user_ids).order("id DESC")
こういうふうに取得してるんですが取得するデータが増えてくるとめちゃくちゃ重くなります
>>442 log見れば発行されてるSQLが出てるので、それを持ってDB板へGo!
ひどい誘導だ
>>441 受託開発でもmysqlを使用するだけであればライセンスは問題ないと思っていました
大体をライセンス譲渡としているので問題なさそうです。他はGPLにすれば良さそうです。無理ならばmysql2をやめる選択でしょうか
>>447 DBでやってることとRedisでやってることを同一視してそれで解決ってアホか
つまり、
- 8台のSun X4100s
- 16GBの memcached
で解決かw
これ遅いんだけど→スパコン使えばいい(ドヤ顔
こんなレベル
ぶっちゃけカリカリにチューニングするために人雇うより金で鯖買ったほうが安いことはよくある
今はサーバ買うより、クラウドだな。
DBの件数が問題で遅いに対して、何を言ってるんだ
>>442について俺も知りたい
レコード件数が10万とかに増えてきたらredisとか使わないとダメなの?
ActiveRecordで抽出するときにparams[:page]
使おうが軽くはならない?
>>456 arelでexistsかjoinで書けば良いんじゃない
458 :
nobodyさん:2014/06/19(木) 02:07:11.41 ID:iQHtmoMn
殺伐としすぎでワロタwやっぱ専門板はこうでないとな
雑談系板に立つプログラミングスレとはえらい違いだよ
wwwwwwwwwwwwwwwwwwwwwwwwwwwwww
チューニングの余地はいっぱいあるし、この程度の件数で遅いのは確実になおせる
>>459 ちょっと気になったんだけどどこにチューニングの余地あんの?
Twitter社もこの方法では1000ms以内に結果返すの無理だからって理由で断念して違う手法とったんだが
>>461 どう考えてもこれは桁の問題じゃないだろ
10万件程度のデータでもメモリに載り切らなくなるのはわかりきってるしTwitterみたいに大きくないから大丈夫なんて言える問題じゃない
メモリに乗るかどうかで判断してるのはDB触ったことないんだろうな
とにかく、データが増えて遅くなったと言ってるやつのほとんどは
SQLでIN使ってる
>>463 横からで悪いんだが今回のケースではどうしても巨大なデータをソートすることになるよね?
>メモリに乗るかどうかで判断してるのはDB触ったことないんだろうな
の意味がわからないから是非教えて欲しいんだけど
おまえら
SQLスレで解決したのになにをやっている
6桁解決だぞ
>>466 じゃあその解決したレスのURLぐらい晒せやボケが。
彼は解決したって書いてるけどjoinを使うことでサブクエリが先に消化されてソート対象がメモリ上に乗るサイズになっただけで結局もっと数が増えたらメモリに乗らなくなってまた遅くなるよ
だからこの問題に関しては
>>462が正解
>>468 SQLの勉強からやり直した方が良いよ
>結局もっと数が増えたら
これが桁の問題だろ。
>>462は間違い
突然出て来てるソートって何ぞ?
間違ってる間違ってるとは喚くけれど何が間違ってるのかも指摘せず
使ったことがない、勉強しなおせと一方的なレッテル貼り
でも正しい答えは書けない
面白いなあ
>>470 お前みたいな素人が来る場所じゃないからSQLの勉強からやり直した方が良いよ
>>469 その会話はTwitterみたいな”ケタ違い”じゃなくても普通のサイトの規模でも簡単に起こるレベルの問題かどうか
が論点なわけだろ?
>>462が言ってるのであってんじゃんお前の読解力がないだけじゃないの
ID出るようにしろよ面倒くさい
10万件でデータサイズどれくらいになると思ってるんですかね。
まさか OR/M に乗っかったときの話なんてしてないよね?
>>474 根本の論点、遅くなってる理由がソートでなくてINだよ
転載
>ご指摘どおり joinへの置換えを行った所
>10000ms→4000ms→0.04msまで落ちました
0.04msってどんなスパコンだよ
計測不能w
mysqlの単位ってsecだよな
40msか
妥当なところ
なにこのスレ。IDでないからってどんだけ自演してんだよ。
railsの酷さとrailsユーザの酷さが一目瞭然なスレだと聞いて飛んできました。
これが煽りおしえて君だ
>>480 対象テーブルが50万件で40msか。妥当かちょっと遅いか。
まぁいいんじゃないって感じがするね。
一人だけ状況がわかってない奴がいるっぽいな
>>482 Railsがひどいんではなく、それを使いこなそうとしないで文句言ってる奴がひどいだけ
今回の件も自分の希望の回答が得られなかったから騒ぎ立てるいつもの煽り教えて君でした
というだけの話
RailsスレでSQLのチューニングの話をすると
誰もついてこれなくて発狂するっていうのは定説だろ。
過去にも同じことがあっただろ。
>>488 バッカだなぁ
SQLスレでこういう回答が得られました
これを実現するにはRailsでどうすればいいですか?
と素直に聞けばまともな回答がとっくに得られてたはずなのに、
「SQLスレでこういう回答があった。はじめからこういうSQLを発行しないRailsはクソ!」
なんて自分のコードが悪いという可能性を1ミリも考えない態度だから荒らし教えて君なんだよ
PHPスレにちょいちょいRuby派の人がくるんだけど、このスレも大概ひどいね
>>484 は正しい指摘した奴を否定してるのは
間違ってわめいてたからか
>>489の何がひどいって、質問者に責任を擦り付けてるところ
妄想でな
ちなみに質問したの自分なんですが、件数を100万件に増やしたら遅くなってしまったので結局その部分をAjaxで知恵っm読込することでごまかしました
>>494 mysqlのバージョンって5.6ではないよね?
>>495 mysql Ver 14.14 Distrib 5.1.73, for debian-linux-gnu (x86_64) using readline 6.1
498 :
nobodyさん:2014/06/21(土) 00:27:39.08 ID:0sjmaigu
bookmark とfavorite
どちらが国際的なサイトに有利だと思う?
「国際的なサイト」ってなんだよ
500 :
nobodyさん:2014/06/21(土) 00:33:50.02 ID:0sjmaigu
>>499 twitterとかfacebookとか多言語展開するサイトだよ
「多言語展開」ってなんだよ
もうちょっとスレに沿った形で咀嚼してくれよ
502 :
nobodyさん:2014/06/21(土) 00:40:13.53 ID:0sjmaigu
その規模作ったことなさげな君の意見はいらんよ
小人はスレ違いとかほざいとけ。たかがRoRごときでいつまで住み着いてんだよw手段にすぎないのに
この質問は簡単に見えて英語はもちろん幅広な教養が必要だから、お前みたいに糞みたいな聞き返ししてる時点で対象外
頭悪いから手段の所しか見させられてない雑魚が、無駄な質問してんじゃねえよ
これが煽り教えて君か
504 :
nobodyさん:2014/06/21(土) 00:45:01.14 ID:0sjmaigu
>>503 お前みたいなゴミから教わることなんかねえよw
お前は雇われ、俺は雇う方
頭の違い、格の違い、わかるかな?
英語すらまともにできないクズ野郎が、こういう話題に乗ってきちゃあかんよ
何にも付加価値ないからw
誰か我こそはレベル高いって奴がいたら意見書いといて。
参考にしてやるかもしれないから。
ドメ仕事ばっかりやってる
>>503みたいなゴミ野郎の意見はいらねえからw
お前等もそんな時間の無駄するより、簡単なRoR極めるために全時間使っとけよw
> 誰か我こそはレベル高いって奴がいたら意見書いといて。
> 参考にしてやるかもしれないから。
これだけ暴言吐いておいて質問に答えてくれることを期待してるとしたら、
おめでたいにも程がある
506 :
nobodyさん:2014/06/21(土) 00:54:07.65 ID:0sjmaigu
>>505 期待なんかしてねえよはなから
ここは英語もまともにできないドメ野郎が多いからな
簡単なRoRに定住してる時点でたかがしれてんだよ
元から自分で調査中で、念のためここでも意見募ったが、
案の定お前みたいな安月給のクズが、何の価値もないセリフ吐くだけだったわw
期待通りだなw
またそのうち覗いてやるから、まともな頭の奴が存在してたら意見かいとけよ
採点してやるから
期待してない割にはレスがすぐ返ってくるなww
>>462から始まったレベルの低い話を改善する救世主は現れんのか
>>500 多言語展開って、たとえば英語についてはその二つで考えてるんでしょ?
タイ語だと何にしようと思ってるの?
>>504 > 元から自分で調査中で
↑って↓ってこと?
> 英語すらまともにできないクズ野郎
久しぶりに有名半コテが登場してるな
>>512 pry かわいいよ pry
今更だけど、元質問に関しては hmt を使えばいいんじゃないかなーと思う
自分は
devise
cancan
mailboxer
rails autocomplete
acts as taggable
acts as votable
recaptch
simple captcha
paperclip
bullet
bootstrap
jquery
ここらへんは絶対に使う
流れを変えるためにあえて質問しますが、なんでいまさらRubyなんか使わなきゃいけいんですか?
Ruby厨の凝り固まった意見が聞きたいです
俺はPerl派なんだが、会社の凝り固まった方針でRuby使わされてる。全くつまらない日々だな。
gem、とか単に「ジェム」って言いたいだけだろ。
どう考えてもcpanmのほうがスマート。
>>515 じゃあ何使えばいいんでしょうか?
あなたの思う最強の言語とやらを教えて下さい
node.jsに1票
(救世主現る)
さぁようやく2chっぽい流れになってきました
流れをぶった切ってごめん
@5秒に1回ajaxでリロードかけて内容を表示更新してる部分がある
Aコメントを投稿したら5秒待たずとも同じように表示更新がかかる
Aのように投稿があったときには
投稿後に「投稿しました」とflashメッセージを更新部分に表示させて3秒でフェードアウトするようにしている。
Aの投稿後、問題なくflashメッセージは表示され3秒後には消えるんだが
その直後の@の定期更新がかかると再びflashメッセージが表示されて困ってる
この場合はどう制御したらいいの?
自動更新のajax読み込んでるところで
flashにnilいれればいいだけじゃない?
ソースさらしてもらわんとなんとも
すみません。コード必要ですね。
投稿後の表示更新はこんなかんじです
【Controller】
(コメントsaveのコード)
format.js do
flash[:notice] = "投稿しました。"
render 'sections/reload_after_post’
end
【View】
<div id="comment">
<%= render 'sections/comment' %>
</div>
【reload_after_post.js.erb】
$('#comment').html("<%= j(render(:partial => 'sections/comment')) %>");
【sections/_comment.html.erb】
<% flash.each do |name, msg| %>
<div id="flash_message">
<div class="alert alert-<%= name == :notice ? "success" : name.to_s %>">
<%= content_tag :div, msg.html_safe, :id => "flash_#{name}" if msg.is_a?(String) %>
</div>
</div>
<% end %>
(コメント表示のコード)
そんなことより、FamilyMartの「おとなのお味噌汁」の「あさりは」はマジで上手いぞ、おすすめ。cpanmとか言ってる場合じゃない
>>525の動きが「投稿後のflashメッセージ表示」で、この下のコードが5秒おきの表示更新になります。
【Controller】
def reload_part
@comments = @section.comment_threads.order("updated_at DESC").page(params[:page]).per(10)
@comment = @section.comment_threads.build
respond_to do |format|
format.js
end
end
【View】
reloadPart();
function reloadPart() {
$.ajax({
url: “sections/reload_part?page=<%= params[:page] %>",
type: "GET",
dataType: "script",
});
}
<% flash.each do |name, msg| %>
<div id="flash_message">
<div class="alert alert-<%= name == :notice ? "success" : name.to_s %>">
<%= content_tag :div, msg.html_safe, :id => "flash_#{name}" if msg.is_a?(String) %>
</div>
</div>
<% end %>
(コメント表示のコード)
【reload_part.js.erb】
$('#comment').html("<%= j(render(:partial => ‘sections/comment')) %>");
setTimeout(reloadPart,5000);
>>527 だから
def reload_part
@comments = @section.comment_threads.order("updated_at DESC").page(params[:page]).per(10)
@comment = @section.comment_threads.build
flash[:error] = nil
flash[:notice] = nil
respond_to do |format|
format.js
end
end
これでいいでしょ
>>528 解決しました
そんな単純なことで解決するとは・・・
ありがとうございました
>>528 と思ったら解決していませんでした
どうやら他のページに遷移したら
flash[:notice] = nil しているにも関わらず
空の状態でflashメッセージが表示されます(枠だけ)
>>530 <% flash.each do |name, msg| %>
<% next if msg.blank? %>
<div id="flash_message">
<div class="alert alert-<%= name == :notice ? "success" : name.to_s %>">
<%= content_tag :div, msg.html_safe, :id => "flash_#{name}" if msg.is_a?(String) %>
</div>
</div>
<% end %>
こんな感じで空だったら省けばええやん、対症療法的だけどソースコード追って根本的解決する元気が無いなら
これでごまかしとけばいいよ
RoR代表の
>>506とか、まさにRoRのレベルを表してるな。
やっぱnode.jsが一番。
537 :
506:2014/06/23(月) 00:42:04.33 ID:vkNI5Agn
レベルひくっw
土日遊びに行く金もないのかな?
bookmarkとfavoriteの件は定まったからもういいよ。君らの脳みそじゃ総合的な判断は難しいようだ。
技術要素であるRoRばっかりやっておきなwほんじゃなゴミども
(´∀`∩)↑age↑
539 :
nobodyさん:2014/06/25(水) 04:32:32.03 ID:VfeeFhnY
======== ここから ========
このスレはnode.jsスレになりました。
RoRの話題禁止です。
つまり、Ruby≒Fortranということだな
とりあえずやっつけ仕事はRailsがベストだろ
Sinatraだろ。
546 :
nobodyさん:2014/06/27(金) 00:27:44.31 ID:Kfr04yi9
547 :
nobodyさん:2014/06/27(金) 03:23:01.66 ID:Kfr04yi9
ページのレンダリング速度を測るのってどうすればいい?
before_filterの中で
@time =Time.now
してfooterでTime.nowとの差分とってみたんだけど値がマイナスになったりで数値が取れません
>>548 var start = Date.now();
// ...
// rendering...
// ...
var end = Date.now();
console.log("Elapsed: " + (end -start));
これでいいだろ。
そりゃ逆にひき算したらマイナスになるんでないかね。
>>548 Timeでusec使えば良いよ
他はDateもTimeも秒単位になってしまう
Railsが遅い象徴で秒を測らないとって意味なら自虐ねたとしてOK
レンダリングってどの部分のことを言ってるのやら
Railsのレンダリングならログ見りゃ一発なんだけど
マネーロンダリングの場合、ログに出てますかね?
>>549 それは上にも書いた通り試したのですがそれをやるとなぜか値がマイナスになったりプラスになったりします
>>550 やってみます
>>551 ログに出力される値をページ上に出力したいです
554 :
nobodyさん:2014/06/28(土) 11:04:47.12 ID:P+7Bvf6W
画面と言われるとディスプレイ全体をイメージしてしまうな。
556 :
nobodyさん:2014/06/29(日) 08:29:00.45 ID:FLtC2iyW
@communities = current_user.get_up_voted(Community)
@numbers = Number.includes(:user).where(:community_id => @communities.collect(&:id)).order("users.active_time_at DESC").page(params[:page]).per(10)
これだとロードし終えるまでに60秒ほどかかる
どうして?
current_userが所属しているコミュニティを取得して、そのIDを代入するのは時間はかかっていない。
取得した「Numberレコードの所有者」の「active_time_at(関連するUserテーブルの項目)」で並び替えようとすると
異常に時間がかかっている模様。
@communities = current_user.get_up_voted(Community)
@numbers = Number.includes(:user).where(:community_id => @communities.collect(&:id)).order("created_at DESC").page(params[:page]).per(10)
だと2秒もかからないのに
何かいい方法ってありますか?
ちなみにテーブルとアソシエーションは以下のとおりです
User: has_many Communities, has_many Numbers
Community: belongs_to User, has_many Numbers
Number: belongs_to User, belongs_to Community
>>557 過去ログ読め
データ数ぐらい書け
DBのバージョンぐらい書け
とりあえず hmt 試そう
>>559 申し訳ない
User: 20,000レコード
Community:100レコード
Number:10,000レコード
ってんかんじで
DBはMySQL5.1.69です
>>561 inを使ってるのが問題だから
>>560が言うとおり、hmtを試してくれ
もう一つは、MySQL5.1.69じゃ遅いよ
>>562 hmtを試すとは?
それとMySQLのバージョン違いでそんなに遅いもんなんですか?
Rails3.2.11を利用しています
>>563 とは?じゃねーだろ
知らないならまずぐぐれ
>>564 hmtだけでググりましたが
それだけだと抽象的な検索結果しか出てこなくて
何をどうhmtと紐づければいいか分かりません
>>566 ありがとう。
rails hmtでググっても今回の件に該当するようなページが出てきませんでした。
rails hmt inも試しましたが同様・・・
>>567 rails hmt でぐぐったんなら hmt とはなんぞや?が分かっただろう
だったら hmt を試すことはできるはずだ
分かってないのに言ってるなら今すぐ死ね
569 :
nobodyさん:2014/06/29(日) 17:18:02.95 ID:FLtC2iyW
570 :
nobodyさん:2014/06/29(日) 17:18:39.11 ID:FLtC2iyW
調べて分からないやつは死ね
Railsに触れるな
hmtなんて誰も使わないような単語だしてドヤ顔とかほんとにレベル低いな
rails has_many throughでググるといいよ
>>568,572
なんでRailsにはこう言う変なのが多いのかね?
N+1問題とか、Rails使わなきゃ絶対遭遇しないだろ。糞ライブラリで馬鹿みたいに隠蔽してっからんなザマになんだよ。
ということでRails終了。
>>575 N+1問題はORM使ってたらどこにでも発生しうる問題
ActiveRecordに限った話でもなんでもない
ということで
>>575はバカ
>>566 r: ライオンが
a: あくびをしたら
i: いい感じ
l: LDKが
s: サバンナ状態
h: ハッハッハと笑いが止まらん
m: またこいつだよ例の奴だよ
t: とっとと消えろ
特にRailsが、ひどいという話だが
>>578 Hibernate N+1 でぐぐったらわらわら出てくるんですが
O/Rマッパ使わなきゃいいだけの話では。生SQLでやれ
>>573 ありがとうございます。hmtってhas_many throughの略だったんですね。。。。
ここでいうNumberテーブルは中間テーブルというわけではありません。
用途を具体的に言えば
User(会員)-Number(電話番号)-Community(携帯キャリア)
のようなかんじです
会員Aさん、Bさん、Cさんがいたとして
Aさんは ドコモ、ソフトバンクの携帯を所持。それぞれの番号(Number)が
090-1111-1111、090-2222-2222
Bさんは auとソフトバンクを所持。それぞれの番号(Number)が
090-3333-3333、090-4444-4444
Cさんは ドコモとauとソフトバンクを所持。それぞれの番号(Number)が
090-5555-5555、090-6666-6666、090-7777-7777
のようなかんじなので、どちらかというと
@numbers = @user.numbers(会員が持つ複数の電話番号一覧)だったり @numbers = @community.numbers(携帯キャリアごとの電話番号一覧) のような使い方をして
number(電話番号)をUserのshowページ)や、Communityのshowページで一覧して表示しています。
@communities = current_user.get_up_voted(Community)
ここでは @numbersを取得するので@numbers = @communities.codes.page(params[:page]).per(10)としても
「undefined method 'codes'」というエラーになりますね
>>581 > ありがとうございます。hmtってhas_many throughの略だったんですね。。。。
rails hmt でぐぐればそれぐらい一発で分かる話なんだが、こいつほんとにぐぐったのかね?
あーあ、こんなとこで電話番号晒しちゃって
hmtって出るたびになんでこんなに荒れるん?
>>584 多分概念的に若干難しいから手取り足取り教えて欲しい人にはハードルが高いからだろうね
>>585 DBの人から見るとテンプレに載るほど簡単なレベルみたいだけど?
>>586 SQLは上級者向け言語ですから(キリッ
>>581を見ると一般的なhmtの使い方をしてなさそうだが
一人だったんだ
運用板で確認したらマジで一人の自演でくっそわろたwwwwwwwwww
596 :
nobodyさん:2014/06/30(月) 12:17:09.64 ID:STnXsq+3
この板IDつかないのか
sageなきゃつくよ
application_helper内で
@user = User.find(1)
みたいにActiveRecordを使うのは無理なんかな?
やってみりゃ分かるよ
無理だった
なんで
601 :
nobodyさん:2014/07/01(火) 01:08:38.25 ID:nJV1b0sU
php
ぺちぱー
>>600 「無理だった」だけじゃ理由なんてみんな分からんよ
>>600 言葉遣いが悪くて、返答する気持ちが全然おきない。
605 :
nobodyさん:2014/07/01(火) 20:55:47.96 ID:XzNxeXAu
>>581 has_namy through を使うと、
>>558 は以下のようになるね
(
>>558 の Community: belongs_to User は謎)
Users:
has_many Numbers
has_many Communities through Numbers
Communities:
has_many Numbers
has_many Users through Numbers
Numbers:
belongs_to Users
belongs_to Communitys
詳しくは以下のページの「2.4 The has_many :through Association」を参照
・Active Record Associations - Ruby on Rails Guides
http://guides.rubyonrails.org/association_basics.html 他にも様々な関連(アソシエーション)があるから、目的に合ったものを選ぶこと
で、Numbers の user_id と community_id にインデックスを設定すれば、
>>561 で示されたような(たかだか)数万件のデータ量であれば、
>>557 にあるような60秒の応答時間にはならないハズだけど....
もしも応答時間に変化が無ければ、Rails以外に問題があると思う
JSON
>>605 mysqlの問題だよ
5.6はわからんけど
5.5まではjoinとかサブクエリとかINとか使ったら遅くて使い物にならん
じゃあバージョン上げりゃいいじゃん
609 :
nobodyさん:2014/07/03(木) 21:27:15.30 ID:lAObJFwK
>>607 MySQL 5.5 のリリース開始が2011年頃で
しかも has_many through は
すでに Rails 1.0 で実装されていた
そんな3年前のありふれたソフト構成で、
たかが数万件の検索に数十秒を要する性能問題の原因が
MySQL にあるとは考えられない
故にRailsは糞、だろ
はいはい、お薬多めに処方しておきますね
>>609 MySQLの遅いポイントは有名だけどよ。
そんな少ない件数で起きる話ではないよな。
で?結論はなんなのよ
MySQL vs Rails の対決が見れると聞いてやってきました
このスレの殺伐感。たまんないね。
616 :
nobodyさん:2014/07/04(金) 04:52:28.37 ID:iiWE9XVi
防蟻対策はどうすればよいのかと
618 :
nobodyさん:2014/07/05(土) 06:16:25.08 ID:12HindV2
Boric bait
mysqlよりはpostageのほうが今は人気だよね、でも今まで名だたるサイトがmysql使ってきたのに素人のおもちゃレベルのもので使えないほど遅くなるわけが無いよね
上の例に関しては適切にindex貼ってないだけだからrailsもmysqlも関係ないけどね
mysqlで遅いって言ってるひとの大半は使い方を間違ってる
mysqlって実装されてる機能の範囲では最速ってイメージだな
index貼ってないとか、slow logに出るだろ。ひょっとしてexplainすらしてないのか?
>>617 白蟻対策じゃなくて防蟻対策ということは、蟻側の視点で「どうやって防蟻剤を突破して家を食うのか?」ってこと?
624 :
nobodyさん:2014/07/06(日) 08:27:50.77 ID:vvaN7WsG
私は仕事で古い(脆弱と言う人もいる)Webスクリプト言語(Perl)で書かれた多くのレガシーコードによるWebベースのサービスを扱っている。
Mooseのような新しい拡張を使ってはいるものの、この言語は柔軟性に欠けていると感じる。
レガシーコードのサポートを避けることはできないので、当分はサポートを続ける予定にしているが、
新たに開発するものに関しては、もっと現代的でWebアプリケーションに使われている言語を使いたいと思う。
フレームワークごと変えてしまってもいい。
http://developers.slashdot.jp/story/14/07/05/0819214/
いいぞ、もっと貼れ
客も減りました
開発者も減りました
SQLインジェクションの脆弱性キタ━(゚∀゚)━!
インジェクションて?
productionモードでは
http://admin.hoge.com/index、
developmentモードでは
http://localhost:3000/admin/indexというルートを作りたいんです。
■route.rb
require 'subdomain/admin''
constraints Subdomain::Admin do
namespace :admin, path: Subdomain::Admin.path do
get 'index' => 'bar#index'
end
end
■lib/subdomain/admin.rb
module Subdomain
class Api
def self.matches?(request)
if Rails.env.production?
request.subdomain == "api"
else
request.subdomain.blank?
end
end
def self.path
"api" unless Rails.env.production?
end
end
end
この状態でRails_Env=developmentとRails_Env=productionつけてrake routesすると期待通りの結果になるのですが、
いざ
http://localhost:3000/api/indexにアクセスしたら「uninitialized constant Api」と出てきます…。
bar_controllerにApi::つけたり、app/controller/apiに配置したりしても駄目でした。
どうすればいいのでしょうか?
productionモードでは
http://admin.hoge.com/index、
developmentモードでは
http://localhost:3000/admin/indexというルートを作りたいんです。
■route.rb
require 'subdomain/admin''
constraints Subdomain::Admin do
namespace :admin, path: Subdomain::Admin.path do
get 'index' => 'bar#index'
end
end
■lib/subdomain/admin.rb
module Subdomain
class Api
def self.matches?(request)
if Rails.env.production?
request.subdomain == "api"
else
request.subdomain.blank?
end
end
def self.path
"api" unless Rails.env.production?
end
end
end
この状態でRails_Env=developmentとRails_Env=productionつけてrake routesすると期待通りの結果になるのですが、
いざ
http://localhost:3000/api/indexにアクセスしたら「uninitialized constant Api」と出てきます…。
bar_controllerにApi::つけたり、app/controller/apiに配置したりしても駄目でした。
どうすればいいのでしょうか?
>>634 Rails は勝手に admin.rb を読んだりはしない
読むようにさせるには
・auto_load の仕組みが働くように規約に沿ったファイル名で規約に沿った位置に置く
・config/application.rb などで require で読む
のどちらか
天安門事件
ここは日本の掲示版です。
640 :
nobodyさん:2014/07/09(水) 00:42:40.56 ID:HDQ993Cd
http://qiita.com/toyoshi/items/052b861c618831ea6e64 部分テンプレートで複数のラベル群を作ると一意性がなくなって、混線しちゃいます。
label forで1,2,3,4とあって、input valueで1,2,3,4とあるとき、1setだったら良いのですが、
1,2,3,4のセットが複数出来る時、各自の中で動いてくれません。
各セットのlabel for やinput valueの1,2,3,4にたとえば投稿のIDなどをくっつけて、987-1,987-2などのようにしたいのですが、
その生成の仕方を知りません。ヘルパーメソッドとかではなく、自然体の書き方としてそういったやり方が用意されているなら知りたいです。
宜しくお願いします
>>640 なるほど、参考になります。もっと貼ってください
天安門事件
天安門広場
文化大革命
643 :
nobodyさん:2014/07/09(水) 02:13:20.30 ID:HDQ993Cd
>>641 いやいや、私も道半ばの人間でして、ここで質問させてもらってるのです
でもついでにお役にたてるなら幸いですが
Ruby on Roadsってどうですか?
多分バグだと思うけど英語出来ないから誰か詳しい人任せる
Rails3.2.18
text = "abcdefg"
text = text.html_safe
text = text.gsub(/cd(.+)/){
$1
}
puts text #=> ab
.html_safeした後にgsubすると$1の中身が空になるscanだとちゃんととれた
html_safeの順番を後に回すときちんと動く
text = "abcdefg"
text = text.gsub(/cd(.+)/){
$1
}
text = text.html_safe
puts text #=> abefg
646 :
nobodyさん:2014/07/14(月) 23:08:44.29 ID:NZMg5fD+
>>645 https://github.com/rails/rails/issues/1555 に出てた。
AS::SafeBufferはStringのサブクラスなので、ほとんどのメソッドは
Stringのそれと同様に動く。
一部の、文字列を加工して返すメソッド(gsubを含む)は、
#to_str で得られた文字列に実操作を委譲するようになっている。
(これにより、unsafeなStringが返る)
加工した結果がタグを含んでしまう可能性があるからだろうね。
で、 $1 はローカル変数なので、SafeBuffer#gsubのブロックと
移譲先のString#gsub内のそれは別物になってしまう。
バグというか、不便だけど言語上の制約と割り切るしかなさそう。
>>646 わざわざありがとうございます
言ってることはちっともわかりませんが直ることは無さそうということで諦めて違う方法考えます!
648 :
nobodyさん:2014/07/15(火) 03:57:15.59 ID:lCP2M1NV
予約システムを作っていますが、日本語・英語で参考になるサイトを知っている方はいますか?
>>648 もうちょっとスレに沿ったレベルまで噛み砕いてからおいで
650 :
nobodyさん:2014/07/15(火) 19:48:09.35 ID:lCP2M1NV
>>649 明らかに作ったことなさそうだね
君みたいなレべルの人間は黙ってていいよ
やはりいつもの煽り教えて君でしたとさ
652 :
nobodyさん:2014/07/15(火) 20:08:38.56 ID:lCP2M1NV
?
君が教えれるレベルとも思わないし、私が君に教わるレベルでもないと思うよw
開発したことある人なら参考になるサイトを見ている可能性があるから、聞いてみたまでで、君のように開発したこともなく英語も読めなさそうな人には当てはまらない質問なんだけどね〜
まぁ頑張って生活してちょw
なんとこのスレでNG登録したったwww
キタ━━━━(゚∀゚)━━━━!!
もっと貼ってくれ
煽り方がワンパターンだな。
さあ、いつものように荒れてまいりました。やっぱrorスレはこうでなくては。
Qiitaってサイトがあって
1.記事にタグがつけられる
2.登録者はタグと他のユーザーをフォローして更新を追える
仕組みになってるみたいなんだけど
タグとフォロしてるユーザーその両方のItemを一気にとってくるのってどうやってんだろう
Kaminariつかってるとして
タグはacts_as_taggableで実装してるとして
Itemsってのが記事だとして
FollowモデルとFollowTagモデルがあるとして
■Follow follow_id follower_id
■FollowTag user_id tag_name
ちょっと思いついたのが
tags = current_user.follow_tags.pluck(:tag_name)
tag_items = Items.tagged_with(tags, any: true).pluck(:id)
follows = current_user.follows.pluck(:id)
follow_items = Items.where(user_id: follows).pluck(:id)
@item_list = Items.where(id: tag_items + follow_items).page(params[:page]).per(20)
こんな感じなんだけどさすがに煩雑すぎるしもっとスマートな方法があると思うんだが何かいいやりかたしりません?