こんにちは。マーケティングプロダクト開発部の長田です。 この記事では、私が現在進めているプロジェクトで、Webpackerを使ったJavaScriptのモジュール管理を導入したので、それについて紹介したいと思います。 Webpackerとは Webpackerとは、Webpackを用いてRails上でJavaScript開発をするために必要な一連の流れを提供してくれる、Rails organizationで開発されているgemです。 これまで、Rails上でJavaScriptのパッケージをどのように管理するか、また、モジュール依存をどのように解決するかについて、多くの選択肢があり、それらをどう組み合わせて使うのかについて悩まされてきました。 このブログでも過去に何度か記事が投稿されており、その中でも複数の選択肢が上げられています。 webpackを使った Rails上でのReact開発
もう新年を迎えて2ヶ月が経ちますね。 多くの人は新年の目標を立てますが、皆さんは何かしら立てましたでしょうか? 英語を毎日勉強するという目標を立てましたが、既に挫折してしまったエンジニアの村上(pipopotamasu (pipopotamasu) · GitHub)です。 本日はその懺悔も込めてVue.jsとRailsの話をお送りします。 この記事を書く背景 以前ブログで書いた通り、現在Webpackerへの移行を機にフロントエンド周りの改善を進めています。 tech.medpeer.co.jp その中でVue.jsとRailsをいい感じに組み合わせるにはどうしたら良いかについて悩むことがあったので、本記事にて共有させていただきます。 悩んだ内容としては以下になります。 1. Ajax通信時にCSRFトークンをどう設定すればいいか? 2. 単一ファイルコンポーネントで書くHTMLをもっと
こんにちは。技術部の国分 (@k0kubun) です。 3/28にクラウドワークスさんで行なわれたRails Upgrade Casual Talksで、Railsアップグレードの際にクックパッドが行なっている工夫について紹介しました。 影響範囲の予測が難しいRailsのアップグレードを安全に行なうための動作確認のやり方について参考になればということで、本記事でも改めて紹介いたします。 CookpadのRailsアップグレードの流れ Rails 4.1から4.2にアップグレードした際の例を紹介します。 CIにRails 4.2用ジョブを用意 まずはRails 4.2にアップグレードするためのrails42ブランチでテストを通します。リリースするまでこのブランチはmasterからrebaseし続けるので、リリースまでテストを通る状態を保つため、CIにrails42ブランチ用のジョブを用意しま
タイトルは釣りです。すみません。Ruby 3.0 はかなり先の将来の話なので、最終的にどうなるかはわかりません。でも Ruby 3.0 に重大な変更が予定されているのは事実なので、一緒に考えて欲しいと思います。 immutable string literal Ruby 3.0 では文字列リテラルをデフォルトで immutable (破壊的変更不可) にする、という方針が『決定』しました。(Feature #11473: Immutable String literal in Ruby 3) つまり、次のようなプログラムが動かなくなります。(当チケットから少し改変して引用) sql = "SELECT #{sec_id}, pt.path, st.doc_count " sql << "FROM #{stats_tablename} AS st " #### ←ここで例外: can't m
選定候補 CoffeeScript 現状使用している Railsとの相性がよい(デフォルトでサポートされている) ECMAScript 6(以下、ES6) 次期JavaScriptの標準仕様 ES6はいつ勧告されるの? 2015年6月予定 つまり、仕様はまだ固まっていない(が、ほぼほぼ固まっていると言って良いと思われる) ES6の機能 es6featuresで概要を一覧できます 日本語版もあった https://github.com/yoheiMune/es6features Mozillaが出している非公式のES6ドラフト仕様書はこちら 「2015 年の JavaScript と babel の話」や「HELLO, ES6 ~これから迎えるJSのミライ~」もわかりやすかった ES6とCoffeeScriptの機能比較 es6featuresに記載される機能のCoffeeScriptでの実
Akira Matsudaさんをゲストに迎えて、Rails, Ruby, RubyKaigi などについて話しました。 スポンサー: freee Show Notes github.com/amatsuda Asakusa.rb Seattle.rb クックパッドにおける最近のActiveRecord運用事情 eaglemt/switch_point 会計ソフト freee (フリー) ★ Rails 4.2.0 beta1: Active Job, Deliver Later, Adequate Record, Web Console Active Job Basics Call #to_s when serializing GlobalID. Fix #95 by miyagawa - rails/activejob MySQL 5.6 and later supports micro
Railsで大きなファイルを扱う際のポイントをまとめてみました。 前提 大きなファイルとは だいたい100MB~10GBくらいのファイルをダウンロード・アップロードするのを想定することにします。 数MB程度だと、特別な工夫なしでもそれほど問題になりません。10GBを超えてくると、気をつけるべき点が変わってくるかと思います。 以下では主にサンプルとして、1GBのファイル(ISOファイルやZIPファイルなど)を想定します。 環境 以下のような環境を想定します。 Railsは4系 Nginx + Unicornのスタンダードな構成 サーバ1台のシンプルな構成(ロードバランサを使用した複数台構成については、末尾に少し記載しています) ダウンロード ファイルのダウンロード まずは、Railsアプリから大きなファイルを配信するケースを考えましょう。 たとえば、ISOファイルをサーバ内に保存しておいて、
今日から文体を常体にする。 データベースに最初からデータを入れておきたい場合、Railsではrake db:seedを使う。このタスクによりRailsアプリケーションがロードされた状態でdb/seeds.rbに書いたコードが実行される。 シード用データを作ること自体が重い場合(例えば外部のAPIを呼ばなければいけないとか、たくさんのjsonファイルを解析しなければいけないとか)、ローカルで流したスクリプトを再度プロダクション環境で流すのは馬鹿らしいので、ローカルのデータベースをダンプしたものを使うのが賢いのだと思う。 環境は次のものを想定する。 PostgreSQL Heroku PostgreSQLではpg_dump dbname > dump.sqlやpsql dbname < dump.sqlようなコマンドを使えるが、Herokuのような環境ではそれらのコマンドを直接叩けないことも多
任意のデータベースにActiveRecord でアクセスしよう。 ActiveRecordで何でもかんでもヤルと楽になる気がした。 RubyでMySQLにアクセスしてデータ読み書きすれば便利そう インストール gem install activerecord sudo aptitude install libmysql-ruby #mysql 関連のパッケージがRubyに含まれていない場合 使い方 require "rubygems" require "active_record"簡単にロードすることができます。 データベースに接続する。 ActiveRecord::Base.establish_connection( :adapter=>"mysql", :host =>"localhost", :database =>"epgrec", :username=>"epgrec_user"
※1/15 ActionMailerPreviewについて追記 Rails4.1の新機能Action Mailer Previewsとは - rochefort's blog What's new in Rails 4.1 - Coherence Blog 公式blogに掲載されてたので見てみました。結構面白い機能が搭載されてそうです。 ご興味のある方は是非原文をご覧ください。 Overview Active Record Enums ARでstausとか何とか区分みたいなのをattributeとして用意するときに enum使いたいという要望はよくあるかと思います。 最近だとDBにenumの機能が実装されていることがありますが、 通常アプリケーション側で実装し、DBは数値か文字列かを突っ込むというをよくやります。 そんな場合Rails側は、Hashを使ったり、固定値(大文字定義の変数)で定
Ruby on Rails 4.1 Release Notes — Ruby on Rails Guides 2章は、機能紹介です。 Rails 4.1 の新機能 - rochefort's blog で書いたときより理解が深まりました。 2 Major Features 2.1 Spring Application Preloader backgroundでRailsを起動してくれるSpringについてです。 bin/rails、 bin/rake は自動でspringをpreloadするようになります。 利用例: bin/rake test:models bin/rails console $ bin/spring status Spring is running: 1182 spring server | my_app | started 29 mins ago 3656 sprin
冒頭、庄司氏は「クックパッドの印象としては、レシピのサービスが一番強いと思いますが、これ以外のサービス、新規事業にも力を入れています」とした上で「cookpad.comに関する話をします」と切り出してセッションを始めました。 まず、Ruby 2.0/Rails 3.2による環境構成を説明し、「このボリューム、正直狂っているんじゃないかな。数か月間でこれだけ増えてるんです。……あの、ここ笑うところですよ?」と独特の語り口でセッションを進めていきます。 サービスの成長と安定性を両立させる3チーム制 しかし、上図のような成長ペースにもかかわらず、デプロイは1日10回ペースを維持している。一体どうやって、これほどの安定リリースを実現しているのでしょうか? 庄司氏はこの点について、エンジニアで構成されている『サービス開発部』『インフラ部』『技術部』の存在を挙げました。 サービス開発部隊がサービス開発
Google+ボタン はてなブックマークボタン 更新日時: 2014年02月26日(水) 作成日時: 2013年09月09日(月) 前の記事 / 次の記事 目次 そもそも何なのか? どうやって使うのか? 嵌まらないようにする(エラーをraiseさせる) 仮想属性でも定義が必要 参考 そもそも何なのか? 例えば次のようなカラムを持つArticleテーブル(記事テーブル)があって、 更新時には headline と content だけを更新して user_id は変更したくない場合。 (user_id は 記事の作成者を識別するidとして使う。) class CreateArticles < ActiveRecord::Migration def change create_table :articles do |t| t.integer :user_id t.string :headlin
def self.up add_column :posts, :rendering_mode, :string, :default => "plain" end def self.down remove_column :posts, :rendering_mode end これでは、新しいデータにはデフォルト値は与えられますが、既存のデータに対してはデフォルト値を与えることはできません。この場合、update_allを利用して、下記のように記述すると、今までのデータを更新してデフォルト値を与えることができます。 def self.up add_column :posts, :rendering_mode, :string, :default => "plain" Post.update_all ["rendering_mode = ?","plain"] end def self.down
「Rubyビジネスの戦略会議的イベントやります」をかけ声に、Ruby&Railsの技術・人材・ビジネス戦略の観点で如何に拡充させてゆくか?そのノウハウを共有する場として「Ruby&Rails BIZcon2013」は9月6日(金)、ビジネスOSSコンソーシアム・ジャパン(以下:BOSS-CON JAPAN)主催で開催された。 基調講演を中心に当日の模様をレポートする。 実行委員長を務める株式会社コンテンツワン取締役川井健史氏の「本日はRubyがビジネスでもっと使えるようなヒントが皆で見つけられれば」との開催への思いのこもった挨拶から講演の幕が上がった。 Ruby&Railsの最新技術動向と今後の予想 基調講演ではmasudriveのハンドルネームで著名な増井雄一郎氏が登壇した。 まずはRailsの歴史についての「おさらい」が語られ、CoC、DRY等々の基本コンセプトが確立されたバージョン1
Rails4 社内勉強会の発表資料です。 Blog: http://www.techscore.com/blog/2013/09/09/rails4-%E7%A4%BE%E5%86%85%E5%8B%89%E5%BC%B7%E4%BC%9A%E3%83%AC%E3%83%9D%E3%83%BC%E3%83%88/ (2013/10/03) TECHSCORE 本体に Rails4 の記事を書きました!スライドでは書ききれなかった詳細についても解説していますので、そちらもご覧ください。see http://www.techscore.com/tech/Ruby/rails-4.0/Read less
railsで論理削除を行うときに使うプラグイン「acts_as_paranoid」を使用するとき注意することがあります。 modelにacts_as_paranoidを組み込み、通常の検索を行うと次のようなSQLが発行されます。 e = Employee.scoped SELECT "employees".* FROM "employees" WHERE (employees.deleted_at IS NULL) しかし、同じくacts_as_paranoidを組み込んだモデルをjoinしてみるとdeleted_atが考慮されないSQLが発行されるようです。 e = Employee.scoped.joins(:user) SELECT "employees".* FROM "employees" INNER JOIN "users" ON "employees"."id" = "use
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く