【RoR】Ruby on Rails Part15
レス数が1000を超えています。これ以上書き込みはできません。
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/
0904あ
2013/01/08(火) 23:24:53.94ID:???0905nobodyさん
2013/01/09(水) 00:22:25.12ID:???低脳は低脳なりに立場を自覚しろよ。
0906nobodyさん
2013/01/09(水) 00:35:03.74ID:???0907nobodyさん
2013/01/09(水) 10:14:19.05ID:B68jwcU5http://weblog.rubyonrails.org/2013/1/8/Rails-3-2-11-3-1-10-3-0-19-and-2-3-15-have-been-released/
Analysis of Rails XML Parameter Parsing Vulnerability - Insinuator
http://www.insinuator.net/2013/01/rails-yaml/
0908nobodyさん
2013/01/09(水) 14:31:32.33ID:bE/E7vCTたかが解答者風情が質問する方に文句言う資格なんざねぇよw
黙って答えろ
0910nobodyさん
2013/01/09(水) 19:27:43.99ID:B68jwcU5http://scan.netsecurity.ne.jp/article/2013/01/09/30755.html
0911nobodyさん
2013/01/09(水) 19:36:02.34ID:???http://scan.netsecurity.ne.jp/article/2012/12/28/30722.html
0912nobodyさん
2013/01/09(水) 19:50:25.74ID:???http://news.mynavi.jp/news/2008/02/22/026/index.html
0913nobodyさん
2013/01/09(水) 19:57:17.23ID:???http://scan.netsecurity.ne.jp/article/2012/02/13/28405.html
0914nobodyさん
2013/01/09(水) 23:19:30.78ID:???hoge.com/posts?q=プログラミング&sort=new
みたいなの
↓みたいにしたほうがRESTだし、SEO的には有利?
それとも上記のやり方のほうが重複コンテンツ扱いされないから
googleさんの階層解析には優しいし有利?
hoge.com/posts/プログラミング/new
0915あ
2013/01/09(水) 23:25:35.04ID:???Google社が配布しているGoogle ツールバーを用いれば、このアルゴリズムによる各ページの評価点を0〜10の11段階で表示することができる。
http://ja.wikipedia.org/wiki/%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%A9%E3%83%B3%E3%82%AF
0916nobodyさん
2013/01/09(水) 23:43:43.12ID:qifpNPDB重複コンテンツ扱いが気になるならcanonical linkでも明示すればよいんじゃない?
あと、上のやり方でもRESTたりえる。
0918nobodyさん
2013/01/10(木) 08:25:21.58ID:HD/4XrFx0919nobodyさん
2013/01/10(木) 12:51:10.79ID:Lf5p4yUUhttp://www.itmedia.co.jp/enterprise/articles/1301/10/news020.html
0920nobodyさん
2013/01/10(木) 15:23:51.39ID:???最近異様に重く感じます
とくにbootstrapを使い始めてから
0921nobodyさん
2013/01/10(木) 15:39:09.09ID:???3.2.6って大丈夫なのかな?
0922nobodyさん
2013/01/10(木) 20:33:41.77ID:Lf5p4yUUhttp://techracho.bpsinc.jp/baba/2013_01_10/6487
0923nobodyさん
2013/01/11(金) 02:52:22.13ID:???0924nobodyさん
2013/01/11(金) 08:20:31.75ID:???ttp://d.hatena.ne.jp/next49/20120201/p1
↑が参考になるかも。
0925nobodyさん
2013/01/11(金) 10:48:47.54ID:???を参考に3.2.11にアップグレードした。
わりと苦労せずにできたよ。
Herokuのサーバーにも反映して無事に動いた。
まぁ、俺のどマイナーWebサービスに脆弱性があっても誰も狙わないだろうけどな '`,、'`,、('∀`) '`,、'`,、
0926nobodyさん
2013/01/11(金) 11:40:53.30ID:???0927nobodyさん
2013/01/11(金) 13:53:18.15ID:???20個くらい使ってる
0928nobodyさん
2013/01/11(金) 14:59:52.87ID:???memcachedは実装すべきですか?
0930nobodyさん
2013/01/12(土) 00:24:21.93ID:onuP/l38http://akasata.com/articles/288
0931nobodyさん
2013/01/12(土) 22:40:47.21ID:onuP/l38Duluth, GA
$100,000 + DOE compensation
Full Time Employment
http://www.bullhornreach.com/job/581157_ruby-on-rails-developer-duluth-ga?utm_campaign=v1&shortlink=1468298&utm_content=3&utm_source=twitter.com&referer=t.co&utm_medium=referral
0932nobodyさん
2013/01/13(日) 10:21:31.53ID:???逆はenv["rack.jpmobile'] = nilで出来たのですが
0933nobodyさん
2013/01/13(日) 15:26:06.55ID:9EpDt3WfJavaを無効にするか削除する、ことを勧めている。
http://headlines.yahoo.co.jp/hl?a=20130112-00000023-asahi-sci
0935nobodyさん
2013/01/14(月) 04:12:18.90ID:b6dR0Wdwhttp://togetter.com/li/438736
0936nobodyさん
2013/01/15(火) 19:24:29.39ID:???ActionView::Template::Error (incompatible character encodings: UTF-8 and ASCII-8BIT)
というエラーがやたらと発生して解決できません
何か解決方法を知っている方はいらっしゃいませんか?
0937nobodyさん
2013/01/15(火) 20:10:11.45ID:???1.9系から、ファイルのエンコード情報をマジックコメントとしてファイル冒頭に書かないと
ASCII文字以外が含まれる場合にそのエラーが出る
# coding: utf-8
みたいな感じのを1行目に書けばいい。
0938あ
2013/01/15(火) 20:20:25.82ID:???0939nobodyさん
2013/01/15(火) 20:50:13.94ID:VabCNrhVhttp://ruby20th.herokuapp.com/
0940nobodyさん
2013/01/15(火) 21:08:22.05ID:vaCWK5thmagic commentがない場合は
us-asciiではなくutf-8とみなすようになる。
0941nobodyさん
2013/01/16(水) 12:57:40.43ID:???これで駄目?
model A
has_many :bs
has_many :bds, :through => :bs, :source => :d
has_many :cs
has_many :cds, :through => :cs, :source => :d
view
.field
= f.fields_for :bds do |bd|
= bd.check_box :d_no_column
.field
= f.fields_for :cds do |cd|
= cd.check_box :d_no_column
0942nobodyさん
2013/01/16(水) 12:59:18.69ID:???env["rack.jpmobile"] = Jpmobile::Mobile::SmartPhone.new(env, request)
0943nobodyさん
2013/01/16(水) 13:19:42.54ID:???返答ありがとうございます。
マジックコメントは勿論各コントローラーで記載しています
hamlを利用していて
%meta{type: :keyword, value: "#{@keyword}"}
みたいなmetaを設定しているところで発生します。@keyword.encode("UTF8") (うろ覚えです)等もやってみましたが改善しないみたいです
自分の環境ではどれだけやっても発生しないのですがエラーログに1万アクセスに1回くらい発生しているので修正したいです
0944nobodyさん
2013/01/16(水) 15:01:11.86ID:???0945nobodyさん
2013/01/16(水) 22:44:39.66ID:hy7GC76dhttp://www.xconomy.com/san-francisco/2013/01/08/programming-literacy-done-right-its-about-the-tools/
0946nobodyさん
2013/01/17(木) 11:36:33.06ID:???ApplicationControllerに記載したアクションのルーティングは
routes.rbにどのように記載すればよいのですか?
resources :application do
get 'search',on: :collection
end
と記載してみましたがうまくいきませんでした。
0947あ
2013/01/17(木) 11:48:12.57ID:???0948nobodyさん
2013/01/17(木) 12:36:37.47ID:???ログインさせて使わせるサイトだと大丈夫?
0949あ
2013/01/17(木) 20:41:27.81ID:???http://www.itmedia.co.jp/enterprise/articles/1301/10/news020.html
0950nobodyさん
2013/01/17(木) 21:19:39.58ID:sdpLMGF2resoucesじゃなく、単に get 'url pattern' to: 'application#myaction'
0952あ
2013/01/18(金) 01:05:47.05ID:g1rcdtnmhttps://groups.google.com/forum/#!topic/rubyonrails-security/61bkgvnSGTQ/discussion
0953nobodyさん
2013/01/18(金) 01:07:52.53ID:g1rcdtnmhttp://www.kb.cert.org/vuls/id/380039
0954nobodyさん
2013/01/19(土) 13:19:47.80ID:???0956nobodyさん
2013/01/20(日) 00:35:37.57ID:???つーことはログイン画面も基本あぶないってこと?
やべーな。
0957あ
2013/01/20(日) 01:13:53.13ID:???やべー
やばい
0958nobodyさん
2013/01/20(日) 11:34:41.21ID:???0960nobodyさん
2013/01/20(日) 18:52:19.35ID:???0961nobodyさん
2013/01/20(日) 20:15:27.82ID:???0962nobodyさん
2013/01/20(日) 22:47:23.62ID:P+bO0zp9http://b.hatena.ne.jp/entry/www.youtube.com/watch?v=h4BUac_yVhU
0963nobodyさん
2013/01/22(火) 08:36:44.58ID:???http://www.ustream.tv/recorded/25419544
Enumerable#entries
http://ruby-doc.org/core-1.9.3/Enumerable.html
0964nobodyさん
2013/01/23(水) 00:12:21.27ID:???たとえばブログサイトを作ったとします
・ユーザー(User)
・記事(Post)
・コメント(Comment)
の3つのモデルがあったとします。
ユーザーの退会時、
:dependant => destroy でユーザーが作成してきた関連レコードも一緒に一斉削除するのが通常かと思います。
しかし、私のサイトではユーザーが他のユーザーの記事を
お気に入りに登録していたりするため、むやみに消せない事情があります。
退会する会員のUserレコードだけを削除した場合、
退会ユーザーのリンク(user_id)が以前投稿したレコードはそのまま残ります。
それらのPostやCommentのレコードは存在し続けても、
作成者が削除されていてuser_idの類にリンクできなくなっているため
nilエラーがどこそこで頻発します。
そこでPostやCommentの作成者名をifか何かで条件から待避させ「退会ユーザー」と統一して表示させ
nilエラーを避けようかと思っています。
みなさんは、こういった処理や
テーブル間の依存関係はどのように設計していますか?
今回の私のようなケースだとどのように削除ルールを作りますか?
会員退会、そのブログの管理は以降は
私が見ますといったかんじです。
0965あ
2013/01/23(水) 02:11:24.92ID:???http://b.hatena.ne.jp/entry/d.hatena.ne.jp/fujisan3776/20080912/1221234453
0967nobodyさん
2013/01/23(水) 08:45:57.77ID:yb79r+q4あとは、退会したユーザーの記事を「退会したユーザー」という特殊な
ユーザー(ログインなどは出来ない)の所有に変更するとか。
0968nobodyさん
2013/01/23(水) 15:05:26.11ID:???退会してもデータが残って表示される事に、ユーザは同意してるのかどうか。
実装は、#try で
0969nobodyさん
2013/01/25(金) 11:18:56.15ID:???a.each do |i|
hidden_field_tag ("key1[]",a[0])
hidden_field_tag ("key2[]",a[1])
end
という方法はあるみたいですがスマートじゃないですよね、、、
しかも
a = [["b","1"],["c",2]]
みたいな2次元配列になると更に複雑ですし。
0971nobodyさん
2013/01/25(金) 12:21:03.24ID:Ecor/dDThttp://www.security-next.com/036753
0972nobodyさん
2013/01/25(金) 17:50:56.51ID:???http://yorunocafe.blogspot.jp/2011/09/i18ngenerators.html
の記事と同じ症状が起きています。
(rails-i18nを使用しようとするとja.ymlの取得がうまくいかない)
記事にあったように、 ja.yml を公式から落としてきて
該当railsプロジェクトのconfig/locales/ja.yml に設置してから
rails g i18n_locale ja を叩いても
fetching ja.yml from rails-i18n repository...
could not find ja.yml on rails-i18n repository
となってしまいます。どなたか解決方法を分かる方はいらっしゃいますか?
0973nobodyさん
2013/01/25(金) 20:00:53.13ID:???解決いたしました
しかしながら、rails g i18n jaで生成された
translated_jaに各種テーブルのカラムを入れても反映されません。
なぜでしょうか?
0974nobodyさん
2013/01/27(日) 01:39:33.37ID:???0975nobodyさん
2013/01/27(日) 22:46:51.72ID:???しかし、ページネーションを使っている状況でキャッシュを使用すると
2ページ目以降も全て同じ内容でキャッシュされてしまいます。
(コントローラーの1アクションにつき1つのキャッシュをしている?)
こういった場合はどのように対処すればいいでしょうか?
ちなみにページネーションの
page=6 とかだけではなく
query=apple や
country=57 などの複数のパラメータも使用しています。
URLで hoge.com/posts?page=7&query=apple&ciuntry=57
のようになります。
0976nobodyさん
2013/01/28(月) 01:41:22.94ID:???1ページあたりの表示のためにSQLリクエストが多い場合だと
SSD 2GBメモリ>>>>>>>>>>HDD 4GBメモリ?
0977nobodyさん
2013/01/28(月) 04:17:26.26ID:???cache suffix: params
でもこれだと posts?neko=nya とかが渡されると新たにキャッシュが作成されてしまうから
cache suffix: params.select{ |key| %w(controller action page query country).include?(key) }
とかする必要があるみたいだ。
0978nobodyさん
2013/01/28(月) 08:54:51.35ID:???ありがとうございます。
その記述だとcountryのパラムに何か値が入っていると
それにキーをつけてキャッシュしていってくれるのかな?
しかし、1ページ目と2ページ目以降の全てが同じ内容で表示されちゃいますよね?
country=47と且つpage=7
とかとの組み合わせで何とかキャッシュできないかな?
0979nobodyさん
2013/01/28(月) 10:02:05.35ID:???キャッシュのキーがログに表示されるから確認してみて。
0980nobodyさん
2013/01/28(月) 10:22:55.99ID:???ありがとうございます!
たとえばパラメータが
params[:page] => ページネーション用のため必要に応じて発生
params[:mode]
params[:country]
params[:query]
と複数あるのですが、
(params[:query].nil? || params[:query] = "") && params[:country].nil?
の時のみキャッシュしていくっていう条件付きで設定出来ますか?
そうしないと 検索される度(query!="")にキャッシュされてしまい
キャッシュが無限大に増殖してしまいますよね。
0981nobodyさん
2013/01/28(月) 10:49:58.62ID:???- if params[:query].blank? && params[:country].blank?
- cache suffix: params[:page] do
ページ別にキャッシュされる
- else
キャッシュされない
0982nobodyさん
2013/01/28(月) 11:38:30.53ID:???さっそく、ありがとうございます
コントローラー内
if params[:query].blank? && params[:country].blank?
cache suffix: params[:page] do
キャッシュする
else
キャッシュしない
end
↓はどこへ?上の構文より上に記述しとけばokですか?
cache suffix: params.select{ |key| %w(post index page mode).include?(key) }
色々と検索しましたが
やり方が皆さん違うようですね
Rails.cache.fetch(:controller => 'posts', :action => 'index', action_suffix => @key)
が、@keyに結果が既に格納されていたら取り出す。なければ、作って格納する。
だと思っていたのですが
これと絡めるのでしょうか?
0983nobodyさん
2013/01/28(月) 12:40:36.07ID:???<% if params[:query].blank? && params[:country].blank? %>
<% cache suffix: params[:page] do %>
<% @posts.each do |post| %>
<%= post.created_at %>
<% end %>
<% end %>
<% else %>
<% @posts.each do |post| %>
<%= post.created_at%>
<% end %>
<% end %>
コントローラーではキャッシュされているか確認して
キャッシュされていないときのみSQLを発行とかする。
if params[:query].blank? && params[:country].blank?
unless fragment_exist?(suffix: params[:page])
@posts = Post.page(params[:page])
else
# キャッシュされてるから @posts いらない
end
else
@posts = Post.where(:query => params[:query])...
end
0984nobodyさん
2013/01/28(月) 12:41:35.63ID:???<% if params[:query].blank? && params[:country].blank? %>
<% cache suffix: params[:page] do %>
<% @posts.each do |post| %>
<%= post.created_at %>
<% end %>
<% end %>
<% else %>
<% @posts.each do |post| %>
<%= post.created_at%>
<% end %>
<% end %>
コントローラーではキャッシュされているか確認して
キャッシュされていないときのみSQLを発行とかする。
if params[:query].blank? && params[:country].blank?
unless fragment_exist?(suffix: params[:page])
@posts = Post.page(params[:page])
else
# キャッシュされてるから @posts いらない
end
else
@posts = Post.where(:query => params[:query])...
end
0985nobodyさん
2013/01/28(月) 12:44:48.11ID:???cache suffix: params.select{ |key| %w(post index page mode).include?(key) }
はキャッシュのキーにキーがpost index page modeのparamsを用いるって意味で
params[:query].blank? && params[:country].blank? のときのみキャッシュするなら不要だろうと思って
cache suffix: params[:page] に書き換えた。必要なら書き換えて。
フラグメントキャッシュじゃなくてアクションキャッシュの方が良いと思う。
その場合はコントローラーに下の行を書くだけ。
caches_action :cache_suru_action, :cache_path => proc{ params[:page] }, :if => proc{ %w(query country).all?{ |key| params[key].blank? } }
なんか間違ってたらごめんやで
0986nobodyさん
2013/01/28(月) 13:19:19.38ID:???ご丁寧にありがとうございます
すみません。
勘違いしていました。
ビューではなく、
SQLコマンドで取得した結果内容だけをキャッシュに格納しておく。
次回、同じ内容のリクエストがあり、もしそのキャッシュが存在したら、
いちいちSQLコマンドが実行されず結果だけ取り出される。それをそのままビューに渡す。それが故に処理が早くできる。
つまり、コントローラー内である程度は簡潔できるものだと思いこんでいました
必ずビューへの記載も必要になってくるんですね
結構めんどうな作業になりそうですね。
本当にご丁寧にありがとうございました。
家に帰ったら試してまた報告いたします。
0987nobodyさん
2013/01/28(月) 16:00:23.37ID:???ここで作られた paginationやmodeパラメータつきのキャッシュをアクション内で消すには
どのように記述するべきですか?
一般的にはRails.cache.delete(:key)
ですが
教えていただいた方法で出来たキャッシュがどこに出来ているのか分かりません。
postsに更新がかかったり、レコードが新たに作られたときに、キャッシュを全て削除したいのですが、
それら(posts#index)で出来たキャッシュを一気に消すにはアクション内でどのように記述するべきですか?
0988あ
2013/01/29(火) 06:42:48.31ID:???http://aws.typepad.com/aws_japan/2013/01/ec2-for-in-memory-computing-the-high-memory-cluster-eight-extra-large-instance.html
Amazonクラウド、2テラバイトのSSD、60GBメモリ搭載で12万IOPSを実現するインスタンスを発表
http://aws.typepad.com/aws_japan/2012/07/aws発表-new-high-io-ec2-instance-type-hi14xlarge-2-tb-of-ssd-backed-storage.html
0989nobodyさん
2013/01/29(火) 15:50:25.21ID:9UmlSZdWhttp://weblog.rubyonrails.org/2013/1/28/Rails-3-0-20-and-2-3-16-have-been-released/
Ruby on Railsに新たな脆弱性、アップデートやパッチの適用を - ITmedia エンタープライズ
http://www.itmedia.co.jp/enterprise/articles/1301/29/news099.html
0990nobodyさん
2013/01/29(火) 16:46:05.98ID:???config/application.rb の config.cache_store による。
フラグメントキャッシュは expire_fragment で削除できる。
http://api.rubyonrails.org/classes/ActionController/Caching/Fragments.html
正規表現を受け付けるようだからキーにマッチするのをを渡せばいい。
キーは自分で指定するので分かってるはずだけどログにも出力されるはず。
0991nobodyさん
2013/01/29(火) 17:12:00.58ID:9UmlSZdWhttp://blog.plataformatec.com.br/2013/01/security-announcement-devise-v2-2-3-v2-1-3-v2-0-5-and-v1-5-3-released/
0992nobodyさん
2013/01/30(水) 08:01:12.07ID:???productionモードに移行した途端に表示されなくなりました
同様に色んなところでproductionモードでの挙動がおかしいです。
developmentモードで真剣にバグ潰ししてたのは何だったの?といったレベルです
もうこの際、developmentモードを本番として公開しようと思うのですが
エラー内容を表示させない方法はありますか?
それとproductionモードと比べたときに、遅いとか、何かデメリットはありますか?
0993nobodyさん
2013/01/30(水) 08:14:42.30ID:???config.serve_static_assets = true にしても駄目?
0994nobodyさん
2013/01/30(水) 10:10:02.52ID:???rescue_from Exception :with => :render_404
def render_404
render :file => "#{Rails.root}/public/404.html", :status => 404, :layout => false, :content_type => 'text/html
end
とでも書けば良いと思われ
ただ速度低下が半端ないので、productionで動くように頑張ったほうがいいと思う 作りにもよるけど、100倍くらい違うと思う
3.2以降は、devでも変更があった場合しかファイル読み込みしない&ルーティング解釈しないようになったらしいから
速度低下は以前ほどでは無くなっているのかな??
productionになると動かんくなるのが多いのは 993さんも指摘してるけど asset pipeline周りが原因のことが多いと思う
0995nobodyさん
2013/01/30(水) 10:55:41.63ID:???0996nobodyさん
2013/01/30(水) 11:49:30.40ID:???上の人が書いてるように設定変えるだけでOK
0997nobodyさん
2013/01/30(水) 14:33:00.58ID:???>>994、>>995、>>996 わざわざ、ありがとうございます。本番への移行でやったことといえば
1. $ bundle exec rake db:create RAILS_ENV=production
2. $ bundle exec rake db:migrate RAILS_ENV=production
3. $ bundle exec rake assets:precompile RAILS_ENV=production
これでアクセスするとsomething went wrongといったエラーが出てきてきました。
心当たりとしては、assets/javascripts以下と assets/css以下に 自分でカスタマイズしたjsファイルやjs.coffeeファイル、css.erbファイルをモデル関係なく単体で作っていたり、
外部のプラグインをそのままフォルダーへ入れていたので
4. config/environments/production.rbに下記の行を追加(これで追加した分も含め該当拡張子の全ファイルをプリコンパイル)
config.assets.precompile += %w( *.png *.jpg *.ico *.gif *.css *.erb *.scss *.js *.coffee)
5. $ bundle exec rake assets:precompile RAILS_ENV=production
6. $ bundle exec rake sunspot:solr:start RAILS_ENV=production
これでアプリは動くようにはなったのですが、なぜかdevelopmentでは生成されていたはずの
simple-captchaというgemのcaptcha画像が表示されなくなりました。
0998nobodyさん
2013/01/30(水) 15:03:59.19ID:???0999nobodyさん
2013/01/30(水) 15:09:26.24ID:???production.rbの
config.action_dispatch.x_sendfile_header = "X-Sendfile"
が邪魔をしていたようです。 コメントアウトすると直りました
スレ汚しすみませんでした
1000nobodyさん
2013/01/30(水) 15:21:00.69ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。