
今日、Twitterで@netwillnetさんと@chiastoliteさんのツイートをみてやってみた @netwillnet time_ago_in_wordsすかね— Hiroyuki Morita (@chiastolite) 2014, 11月 17 Railsではtime_ago_in_wordsヘルパーが用意されています でも、この子はリアルタイムで更新されない(当たり前 クライアントサイドで、リアルタイムに経過時間をとってきたいですよね? jQueryプラグインにtimeagoってのがあります これを使ってみましょう jsファイルを... ダウンロードせずにgemを探します rails-timeago - GitHubを使ってみましょう 使い方はとっても簡単♪ # Gemfile gem 'rails-timeago', '~> 2.0' # app/assets/java
インストール Chocolatey Windowsのパッケージ管理ツール。 @powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin Ruby choco install ruby Ruby Development Kit choco install ruby.devkit Ruby on Rails gem install rails --no-ri --no-rdoc 確認 C:\>rails --version DL is deprecated
Powは、Mac OSX用のRackサーバです。これを使うと複数のRackアプリ(まあRailsアプリ)を同時に簡単に動かすことができます。開発環境に便利。Ruby on Railsの開発者であるDHHが所属する37signalsが公開しています。 Pow: Zero-configuration Rack server for Mac OS X ↓ こちらのブログ記事が気になって僕も試してみました。 Rails Hub情報局: Node.js+CoffeeScriptで書かれた「Pow」がカッコ良すぎる件 インストール方法 $ curl get.pow.cx | sh アプリ登録方法 ホームディレクトリに.powというディレクトリができているので、そこにアプリルートへのシンボリックリンクを作ります。 $ ln -s /path/to/myapp ~/.pow/ こんだけ。完了。 自動的に
前職と現職で2アウト案件。 Railsに限らないけど、ログインユーザの情報を変更するときは current_user みたいな変数を変更するんじゃなくて、DBを引き直して更新しましょうって話。 ダメな例 class ProfileController def update if current_user.update(profile_params) redirect_to :root else render :edit end end end 良い例 class ProfileController def update @user = User.find(current_user) if @user.update(profile_params) redirect_to :root else render :edit end end end なんでだめなの? バリデーションエラーが起きた時に
rescue_from で拾えない例外がある Rails が用意してくれている rescue_from は controller の外側で発生した例外を拾ってくれない。 例えばパラメータに不正なエンコーディングが含まれるときに、Rails は ActionController::BadRequest を例外として投げる。しかし、この処理は Rails の routing 層で行われているため rescue_from で捕捉することはできない。 そのため Rails の外で発生した例外を捕捉していない場合、ユーザには意図していないエラーページが見えている可能性がある。 Rails の外で起きる例外は exceptions_app で処理するのがお手軽 例えば config/initializers/exceptions_app.rb に以下のコードを書いておく(ErrorsControlle
先日、Rails で開発しているときに意図しない InvalidAuthenticityToken エラーが発生して、すごくハマってしまいました。そのときに Rails のCSRF対策の仕組みについて調べてみましたので、ブログに残しておきます。 Rails のCSRF対策 Rails が生成した ApplicationController には以下の記述があります。 class ApplicationController < ActionController::Base # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. protect_from_forgery with: :exception end protect_from_forg
インフラストラクチャー部の成田(@mirakui)です。 Rails の OR マッパーである ActiveRecord ですが、みなさんどのように運用していますか? ActiveRecord を使うと、 SQL を直接扱うことなく、抽象化された表現で RDB にアクセスできるので、アプリケーションの開発効率という観点ではメリットが大きいです。 一方で、 ActiveRecord が駆使されているアプリケーションをサーバに配置してプロダクションとして運用する立場からすると、いくつかの問題に突き当たります。 まずはクックパッド本体アプリケーションにおける、最新の rake stats をご覧ください。 +----------------------+-------+-------+---------+---------+-----+-------+ | Name | Lines | LOC
Rails の routes を peco りたかったんで rails-froutes という gem を作りました。 Github: pinzolo/rails-froutes RubyGems.org: rails-froutes インストールして、rake routes FILL_NAME=yesと呼び出すと、従来は blog_posts GET /blogs/:blog_id/posts(.:format) posts#index POST /blogs/:blog_id/posts(.:format) posts#create new_blog_post GET /blogs/:blog_id/posts/new(.:format) posts#new edit_blog_post GET /blogs/:blog_id/posts/:id/edit(.:format) post
Windows上にRails環境を構築する機会があったのでメモとして書きます。Macでもほぼ同じ手順で構築できました。 cf) Windows 7マシンで、VirtualBox+Vagrantを使いUbuntu 14.04を動かす 狙い VirtualBoxの共有フォルダ上にrailsプロジェクトを作成するので、Windows上の好きなエディタでコードが書けます。テスト用のrailsプロジェクトを作成してserverを起動し、Windowsのブラウザからアクセスするところまで書きました。 引用元)VirtualBoxやVagrantを用いたRails開発環境の構築方法(前編) VirtualBox導入 ver4.3.14でやろうとしたらエラーが出てvagrant up できませんでした。 vagrant 入れ直したり色々やりましたが、VirtualBoxが原因だったようです。 cf)Sur
Railsアプリケーションのルーティングは、config/routes.rb1ファイルで最初は開発を始めると思います。 ただ、サービスを運用していくとルーティングは膨らみ、メンテナンスコストも馬鹿になりません。 そのため、ルーティングの設定をできるだけメンテナンスしやすく作っておくことでそのコストを下げようという試みです。 Railsのルーティングは、config/routes.rb がルーティングの設定ファイルにデフォルトで指定されています。 ただ、これは変更可能ですし、複数のファイルに分割もできます。 昨今のアプリケーションの用途は、Web、native(iOS、Android)、APIサーバ、と多岐にわたるので、
select sum(min_salary), sum(max_salary) from jobs; これをActiveRecordで書きたい。 ベタに書くと rec = Job.select(<<-SELECT).all[0] SUM(MIN_SALARY) AS MIN_SALARY ,SUM(MAX_SALARY) AS MAX_SALARY SELECT # => SELECT SUM(MIN_SALARY) AS MIN_SALARY # ,SUM(MAX_SALARY) AS MAX_SALARY # FROM "JOBS" p rec.min_salary # => 124888 p rec.max_salary # => 251088 こうなる。 関係ないけど、仕事中にActiveRecordの書き方で詰まったら、諦めて直接SQL書いた方が早いよね。閑話休題。 こう書けそう
続json出力のカスタマイズ as_jsonを使うの続きです。 前回はリレーションをincludeでやってました。この場合movie.rbでas_jsonを書いても全然反映されませんでした。 それで、includeでごにょごにょしてました。 # studio.rb class Studio < ActiveRecord::Base def as_json options = {} super :only => 'name', # :include => :movies # 本当はこうしたかったがうまくいかないので下の様にしてた :include => { :movies => { :only => ['title'] } } end end includeからmethodsにするとmovie.rbのas_jsonが呼び出されます。 自分の管轄だけ扱えば良いのですっきりします。 # stud
Method deprecated or moved This method is deprecated or moved on the latest stable version. The last existing version (v2.3.8) is shown here. These similar methods exist in v7.1.3.2: ActiveSupport::ToJsonWithActiveSupportEncoder#to_json ActiveStorage::Filename#to_json Returns a JSON string representing the model. Some configuration is available through options. The option ActiveRecord::Base.includ
誰が興味があるのか謎ですが、ActionView を単体で使ってみようと思います。 意外にも Rails の仕組みとか見えてくるかもしれません。 Rails 4.1 ぐらいから ActionPack から独立した記憶があります。どうでしたっけ。 テンプレートを使いたい時には erb, haml, slim などを単体で利用すればいいのであまり使う機会はないかもしれません。 雑感では、 layout 機能を使いたい インスタンス変数で値にアクセスしたい Rails が提供するビューヘルパーを使いたい あたりがメリットかと思います。 この記事のために作成したコードはこちらにおいておきます。 補足の部分は読み飛ばせるように書いているつもりです。 利用したRailsのバージョンは 4.1.4 です。 1 Hello, world まずは使ってみます。 ActionView::Base.new.re
熱いワールドカップが終わって平和な夜に戻ったshibuso です。Rails ユーザの皆さんは色々rails genarate コマンドを利用しているかと思いますが、この前調べていたら「こんなにあったのか!」となったので、今回Rails のgenerator を大まかに紹介してみます。Rails のバージョンは4.0.1 です。 実行結果をまとめてみました 結構数があるので先に目次を作っておきます。順番は重要そうなものだったり気の向くままだったりしていますので、大して意味はありません。 scaffold scaffold_controller controller resource model migration assets helper generator integration_test jbuilder mailer task rails generate scaffold これは
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く