Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? db/schema.rbは何に使われるのか rake db:migrateなどをすると現在のスキーマが反映され、スキーマの確認などに便利なschema.rb。 ふと、1つのRailsアプリを分割して、複数のRailsアプリから同じDBを参照するようにしたくなったのだが、その際にどちらのRailsアプリにもdb/schema.rbを含める必要があるのか気になった。 db/schema.rbを削除してもアプリは動くのだが、 schema.rbには「It's strongly recommended that you check this f
はじめに いまさらながらElixirとPhoenix触ってみました。「Railsに似ている」と噂されていますが使っているうちに「そんなの嘘だっ!」と何度もなりかけまして、イマイチ理解も進まなかったので、Rails と Phoenix を比較して理解を進めることにします。 今回はプロジェクトを立ち上げる際に使うコマンドをまとめていきます。 間違いなどありましたら指摘して頂ければと思います。 Elixirのいろは とは言ってもまずはElixirについて知る必要がありましたので、下記サイトで一通り触ってみました。 elixir school elixirの基礎を知れます。いろいろなサイトを見ましたが、これをやっておけばひとまず間違いないです。 Phoenix入門1 - Hello Phoenix phoenixで静的ページを作成する所まで解説しています。 それでは、次からRailsとPhoeni
RailsのChangeLogを読んでいたらkamipoさんの ActiveRecordへのコミットがRails5から使えるようになってるものがたくさんあったのでまとめてみました。 PostgreSQLでExpression IndexとOperator Classをサポート MySQLでPrepared statesmentsをサポート config/database.ymlでprepared_statements: trueとすると利用できるようになります。mysql2 0.4.4以降が導入されていないと使えないようです。 Schema dumperがcreate_tableブロックの中でindexを定義するようになった schema.rbのcreate_tableのブロック内でt.indexでインデックスが定義されるように変更されています。以前はcreate_tableのブロック外で
こんちは freee K.K. という会計・給与などの クラウドサービスを提供している会社にて会社員をやっとります @futoase です。 今日は弊社サービスで利用しているDB(RDS)の負荷を半分に減らしてみた、 ということで軽く書いていきたいと思います。お付き合いください。 今期ずっと見続けられてるアニメは、 ゆるゆりとおそ松さんです。 ここで話すRuby/Ruby on Railsの世界とは Ruby 2.1系 Rails 4.2系 以上の世界観となってます。 Ruby 2.1系なのは今月中に2.2にします...(2.3が出てしまう前に...) ベンチマーク方法 について予め言っておきますと、 nginxで収集したaccess.log(staging環境なので開発者がアクセスしたログしかないですよ)を元に 特定のController#Actionへの負荷計測をsiegeに食わしてシ
% rails c Loading development environment (Rails 4.0.0.beta1) > hoge = Hoge.new => #<Hoge id: nil, created_at: nil, updated_at: nil> > open('methods.txt', 'w'){ |file| > file.print(hoge.methods.join("\n")) > } => nil ! != !~ <=> == === =~ [] []= __id__ __send__ _attr_readonly _commit_callbacks _commit_callbacks= _commit_callbacks? _create_callbacks _create_callbacks= _create_callbacks? _destroy _d
[2014/08/26追記] 続編を書きました。 その③:実装編 前回の その①:考察編 の続きで、今回は その②:環境構築編 です。 で、結果から言うと、手元では下の図のように、Rails × AnguraJS の連携が上手くできました^^ (その① で述べているとおり、Rails は APIに徹してレスポンスは全て JSON。Rails の public ディレクトリで AngularJS が動作しています。) Rails 部分と AngularJS 部分が同一ソースツリーで管理できますし、フロントエンドは Grunt や Bower が使えますし、ぼっちでバックエンドとフロントエンドを作る場合にいいかも^^; 下図では、ローカル環境にて、Rails の 3000ポートで、AngularJSが動作しているのが分かるかと思います。 実装は手元では終わっているのですが、説明が長くなるので(
[2014/08/25追記] 続編を書きました。 その②:環境構築編 [2014/08/26追記] 続編を書きました。 その③:実装編 今回は その①:考察編 です。 ちょっとややこしいのですが、Railsアプリケーションの View で AngularJS を利用するということではなく、JavaScriptベースのフロントエンドアプリケーションとして AnuglarJS を利用し、サーバ側のデータを操作する為のバックエンドAPIを Rails で構築する、ということです。(まだややこしいかな..) シチュエーション的には、UIリッチなフロントエンドアプリケーションを構築するが、サーバにもデータを保持する必要がある、というもの。 (例えばシングルページアプリケーション構成や、1画面=1データモデルとはならないもの。) かつ、フロントエンドの開発は本格的にやるので、Grunt や Bower
# Railsのルートパスを求める。(RAILS_ROOT/config/unicorn.rbに配置している場合。) rails_root = File.expand_path('../../', __FILE__) # RAILS_ENVを求める。(RAILS_ENV毎に挙動を変更したい場合に使用。今回は使用しません。) # rails_env = ENV['RAILS_ENV'] || "development" # 追記に記載してます。入れた方がいいです。 ENV['BUNDLE_GEMFILE'] = rails_root + "/Gemfile" # Unicornは複数のワーカーで起動するのでワーカー数を定義 # サーバーのメモリなどによって変更すること。 worker_processes 2 # 指定しなくても良い。 # Unicornの起動コマンドを実行するディレクトリを指
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 結論: Javascriptの乱用をやめるのが一番。 はじめに書いておきますがしょうもない話です。 結論、開発者としてはどのような方向性でやるべきか、を書いています。 JS多い時代でのフレームワークの根本的な問題云々のことは書いてません。 さて、現状、モバイルにおいて、Javascriptでまともに動くものを作ることは難しいです。 Twitterから引き抜いた超優秀なWebエンジニアを多数抱えるMediumですら、未だにモバイルで多数のバグを抱えています。 超優秀なエンジニアを世界一抱えているであろうGoogleのGmailですら、モバ
ローカルの Rails の開発環境を直接OSに構築してしまうと、 仕事で別のバージョンの DB が必要になったケースなどで非常に苦労するので 何らかの仮想マシン上に開発環境を構築するほうが楽だと思う。 Vagrant と何かしらのプロビジョニングツールを使う方法がベターだが、 Docker Compose を試しに使ってみたら便利だった。 Docker Compose なに? Docker における複数コンテナの管理を docker-compose.yml という1ファイルでできるようにするツールです。 詳しくは https://docs.docker.com/compose Vagrant と比べたメリット 設定ファイルが短い。 例えば Vagrant + ansible の場合、Ruby とか PostgreSQL とかのインストール方法を自分で書く必要がありますが、 docker-c
まえがき AWSのVPCとEC2の設定が出来ている状態から、 実際に自分のRailsアプリケーションを公開する までの一連の流れを説明します。 (まだ、VPCとEC2の設定が出来ていない方は以下の記事を見て設定をお願いします。 AWS VPCによるネットワーク構築とEC2によるサーバー構築) 「protospace」というアプリケーションをサーバーに「shizuma」というユーザーで作成していきます。 適宜、お好きに変更して作業を進めて下さい。 実際に自分のRailsアプリケーションを公開することが目的ですので実際に手を動かしながら見てもらえると嬉しいです! 作業は、「local」と「server」の作業どちらか確かめながら進めて下さい。コマンドを記載したエリアの左端に記述しています。 (「#」はコメントアウトです) capistranoでのデプロイ等は本記事ではいたしません。本記事の後に
AASM - Ruby state machines ここを参考にしました。 https://github.com/aasm/aasm/blob/master/README.md https://github.com/aasm/aasm/blob/master/CHANGELOG.md ※2014年に本記事を投稿してから、細々と継続的にアクセスがあるようです。AASMの仕様は投稿当時と最新版でもそれほど変わっていないようですが、ご利用にあたっては必ず上記GitHubのREADMEとCHANELOGの確認をお願いします。 概要 AASMはRubyのclassに有限オートマトンを追加するライブラリ。2014年10月現在でも精力的に開発が進められている。以下の内容は gem version ~~~3.4.0~~~ 4.9.0 に準拠する。 http://techblog.heartrails.c
Rails3 まで ページキャシュ(ページ全体をキャッシュ) ページのレンダリング結果を静的な HTMLファイルとしてファイルシステムに保存する機能。HTMLファイルは publicディレクトリ以下に配置され、Webサーバ(Nginxなど)から直接返すことができる。リクエストパラメータ(条件付き GET リクエスト)が付与される場合は避けた方が良い。 アクションキャッシュ(アクション単位でキャッシュ) ページキャッシュと同じく、ページ全体をキャッシュする機能。柔軟な制御をしたい場合はアクションキャッシュを用いる。(非ログインユーザのみに対してページキャッシュしたいなど)アクションキャシュは、Webサーバで直接返さず、2回目以降のアクセスでも Rails で処理する。その分負荷がかかるが、柔軟な制御ができる。また、アクションキャシュの保存は設定した Railsのキャッシュストア(Action
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く