You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
クラウドワークスのエンジニアの森田(@minamijoyo)です。 ついにRails5がリリースされましたね。今日はRails5じゃないですけど、Rails3/4並行稼働させた話をしようと思います。Railsバージョンアップを検討している方々の参考になれば幸いです。 はじめに 去る2016/03/28 「Rails Upgrade Casual Talks」というイベントでRails3/4並行稼働させる仕組みを作ってる話をしました。 イベントの模様はエンジニアブログにきびたん(@ctokoro_me)がまとめてくれてるのでこちらを参照して下さい。 engineer.crowdworks.jp 上記のイベントで発表した内容はこちらです↓ Railsバージョンアップを段階的に行うためにRails3/4並行稼動させる仕組みを作ってる話 from Masayuki Morita www.slide
こんにちは、トレンド調査ラボの井上寛之(@inohiro)です。 普段は、クックパッドの検索ログを基にした法人向けデータサービス「たべみる」の開発や、 広告事業周辺のデータ分析などを担当しています。 Amazon Redshiftなどのデータベースに蓄積されたログなどの大量のデータに対して、 日次や週次などの単位でバッチ処理を行っている方は多くいらっしゃると思います。 ログなどを扱うバッチ処理では、処理対象が膨大であるとアプリケーションが使うメモリが増大し、 枯渇してしまう恐れもあるため、データの扱いに気をつける必要があります。 データベース内で完結するバッチ処理ならばそこまで気にする必要は無いかもしれませんが、 外部のプログラムからデータを読み出して処理する場合は特に注意が必要です。 そこで考えられる一つの工夫として、処理対象を分割して、繰り返して処理を行う方法が挙げられます。 一般的な
Active Record Nested Attributesの記事の抜粋です。 accepts_nested_attributes_forは、親子関係のある関連モデル(Project has_many :tasks や Enquate has_many :questionsなど)で、親から子を作成したり保存したりするときに使える。 1対1の時 class Member < ActiveRecord::Base has_one :avatar accepts_nested_attributes_for :avatar end params = { member: { name: 'Jack', avatar_attributes: { icon: 'smiling' } } } member = Member.create(params[:member]) member.avatar.id
cuzic です。 Ruby on Rails Advent Calendar 24日目の記事です。 今日はクリスマスイブです。 実は生まれて初めての Advent Calendar への投稿です。 さらに Qiita で書いたのも初めてです。 ちょっとドキドキです。 今日は、Ruby on Rails における Conditional Get に ついて書きます。 ConditionalGet とは ここで書こうとしている ConditionalGet とは、 HTTP1.1 で規定されている取得済みのコンテンツであれば ブラウザ内のローカルキャッシュを使わせることで、 トラフィック量を削減する機能のことです。 一般に、ブラウザは動作を高速化するため、トラフィックを 軽減するため、コンテンツを一旦キャッシュとして保管します。 とはいえ、キャッシュを使う限り、そのキャッシュは今でも 有効な
おぐらです、RubyKaigi 2013の会場からこんにちは。 現在、弊社で開発中のqnypというサービスは、少し前にRails 3.2.13からRails 4.0.0.rc1へとアップデートを行いました(サービス自体はまだ非公開なのでアクセスはできません)。 このアップデート作業を通じて、 Railsに依存するgemを減らしていく JavaScriptライブラリをラップしただけのgemを使わないようにする という点について重視するようになりました。 1. Railsに依存するgemを減らしていく 特にActiveRecordなどRailsの内部に深く関わるようなgemにおいて、Railsのメジャーアップデート時の対応速度が迅速ではなさそうなものがあったため、できるだけそれらのgemを利用しないようになりました。例えばauditedは、現時点の最新版がactiverecord ~> 3.0
この記事は ドワンゴ Advent Calendar 2014 20日目の記事です 新しい年を迎える準備 もうあと10日もしたら新年です。 みなさん新年を迎える準備はできているでしょうか? ん? その前に大事なイベント? コミケのことかな??? 正月の準備といえば、家を大掃除し、しめ飾りや門松を飾り、餅を撞き、おせちを作り、色々ありますが、 これはすべて神様を迎え入れるための準備なんですね。 年神様という、元日に各家に訪れ、一年の実りと幸せをもたらしてくれるありがたい神様です。 年神様を心から歓迎し、失礼ないようおもてなしすれば、次の一年の幸福と繁栄とマネタイズは約束されたも同然です。 さて、今年は、Railsエンジニアが年神様をお迎えするにあたって、 その前に供物を捧げ荒ぶる現世神の怒りを鎮めなければなりません。 すなわち、今年のうちに secure属性がついたcookie を現世神にお
RailsのMigrationの基本的なことから、カラム追加/削除、インデックス追加、NULL制約、カラム名変更などのレシピ集をまとめました。 動作確認 Rails 4.1 目次 1. Migrationの基礎 1.1. migrationファイルの作成 1.2. マイグレートの実施 rake db:migrateコマンド 1.3. マイグレートの適用状況確認 rake db:migrate:statusコマンド 1.4. データの投入 rake db:seedコマンド 1.5. マイグレーションで使えるデータ型一覧 2. Migrationのレシピ集 2.1. カラムの追加(add_column) 2.2. カラムの削除(remove_column) 2.3. データ型の変更(change_column) 2.4. インデックスやユニーク制約の追加/削除(add_index/remove
Ruby 5で紹介されていたObject Oriented Rails - Writing better controllers - Pivotal Labsの訳です。(翻訳の質はうんこかもしれません、元記事読みましょう) 私は最近、Objective-Cを使ってiOS、Javaを使ってAndroid、たくさんのモバイル開発をしている。 私はRuby開発者でもあるので、それらの言語やフレームワークから学んだことを可能な限りRubyでも試し、適用してみようとするのは当然のことだろう。 今日はRailsアプリでよりよいコントローラを書くため、僕のベストを尽くそうと思う。 私はAndroidやiOS向けのアプリを書くとき、スタブやモックを使わないよう、自分自身に強制している。それは、オブジェクトの設計を向上させ、DI(依存性の注入)を使ってテストを書くことを意図している。 では、コードの例を見て
form_for remote:true の時にajax:failure、ajax:loadingがコールされないRails ハマりまくって時間を食ってしまったが、ようするにイベントの名前が違うらしい。この名前変更っていつ起きたものなのだろうか。読んだ資料が古かったんだろう。 http://stackoverflow.com/questions/6004189/rails-remote-form-callback-ajaxloading-does-not-fire-others-do によるとajax:[jqueryでのイベント名]っぽい。実際のソースをたぐってみると下記のように書いてあった。 options = { type: method || 'GET', data: data, dataType: dataType, // stopping the "ajax:beforeSend
概要 通常 Rails の flash メッセージは、アクションごとに HTML をレンダリングする場合にしか使用できません。 Rails 側の各アクションで flash メッセージの設定を行う必要があるからです。 つまり、Ajax 通信が終了 (complete) した際に flash メッセージを表示する手段は、デフォルトでは用意されていません。 一応、サーバ側で flash メッセージを表示するための JavaScript を用意して、それをレスポンスとして返すなどの方法はあります。 それでも Ajax 通信 (JSON リクエスト) でも flash メッセージを表示したいよぉ! というわけでその方法を調べてみました。 方法 Rails 側ではレスポンスヘッダ ('X-' で始まるカスタムヘッダ) に flash メッセージを格納してレスポンスを返します。 そして、JavaScri
Twitter からのレスポンスデータが大きいのが原因 原因を調べたところ、OAuth 認証で、Twitter が返すレスポンスデータの extra section のデータが大きすぎるためであるらしい。 ruby on rails – Devise for Twitter, Cookie Overflow error? – Stack Overflow 解決策をググってみたのですけど、セッションの保存先を Cookie から ActiveRecord に変更する方法を解説しているページが多かった。 セッションにあまり大きなデータを格納するのも気持ち悪い気がしたので、この stackoverflow に書いてあった方法で extra はセッションに格納しないようにしました。 OAuth 認証用のコールバックメソッド 以下、Devise + OmniAuth を使った OAuth 認証用のコ
Railsでページごとにページタイトル(titleタグ)を変更するTipsを説明します。 動作確認 Rails 4.1 1. タイトルを設定するヘルパーメソッドを作成 タイトルを設定するメソッドを追加します。 page_titleがからの場合、base_titleしか表示しないようにしています。 # app/helpers/application_helper.rb module ApplicationHelper def full_title(page_title) base_title = "アプリ名" # 自分のアプリ名を設定する if page_title.empty? base_title else "#{page_title} | #{base_title}" end end end 2. レイアウトの>title<タグからヘルパーメソッドを使う レイアウトファイルのtitle
まず、ここまでで一旦整理する。 Time.nowはRubyの組み込みなのでシステムのタイムゾーンしか見ない。OSの時間と常に一致する。Time.localの出力結果もOSのタイムゾーンと一致する。 TimeWithZoneクラスはconfig.time_zoneに左右される。 Ruby組み込みのメソッドで取得したUTCの時間を基準に、設定されているタイムゾーンの時間に変換する。 ActiveRecordのインスタンスに対してアクセサを利用して時間をやり取りする場合はTimeWithZoneで行われる。 仮にTimeクラスを渡しても代入時にTimeWithZoneに変換される。 config.active_record.default_timezoneの設定はDBを読み書きする際に、DBに記録されている時間をTime.utcで読むかTime.localで読むかを設定する。 :utcの場合DB
# [前提] # 以下の様なデータを持つusersテーブルが作成されているとする。 # | id | name | # | 1 | taro | # | 2 | hanako | require 'active_record' # ここは使用するDBにあわせる(この例ではSQLite3) ActiveRecord::Base.establish_connection( "adapter" => "sqlite3", "database" => "./hoge.sqlite3" ) # 各テーブルのModelを動的に作成する ActiveRecord::Base.connection.tables.each do |table_name| class_name = table_name.singularize.camelcase self.class.const_set class_name
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く