jquery-ujsからrails-ujsの移行、特に気をつけることないと思ってたけどajax:successなどのイベントのコールバックに渡される引数が違うな— willnet (@netwillnet) 2017年7月15日 jquery-ujs だと data, status, xhr rails-ujs だと event だけ レスポンスの情報がほしいときは event.detailの中をみる document.body.addEventListener('ajax:success', function(event) { var detail = event.detail; var data = detail[0], status = detail[1], xhr = detail[2]; }) 参考 jquery-ujs/rails.js at master · rails/jq
結構使いやすくなっていたので紹介 セットアップ # Gemfile gem 'graphql' rails generate graphql:install まず導入 基本的な構成と、graphiql(GraphQLのクライアントをRailsにマウントするやつ)が入る http://localhost:3000/graphiql サンプルフィールドが用意されているのでクエリを叩くと、結果が得られる。 こんなかんじ。 ActiveRecordとつなげる Railsで使うからにはGraphQLのObjectとRailsのモデルを繋げなければいけません。 つなぐために GitHub - goco-inc/graphql-activerecord このGemを使います。 rails g model Book name:string こんなモデルを予め作っておいてください。 # Gemfile ge
github.com Railsのcontrollerで違和感があるのって actionのinputに params というインスタンスメソッド経由でアクセスすること しかも params はviewからアクセスできる! actionのoutputが controller のインスタンス変数への代入であること しかもそのインスタンス変数はviewからアクセスできる! というところだと思うんですよ。 なぜなら我々は「メソッドの引数でinputを受け取りメソッドの戻り値をoutputとすべし」ということを是としてコードを書いてるわけじゃないですか。リーダブルコードを読むまでもなく、変数のスコープは狭ければ狭いほどメンテナンスしやすいリーダブルなコードだというベストプラクティスを正しいものとしてコードを書いているわけじゃないですか。 そういうベストプラクティスに真っ向から反しているのが現在のRa
Photo by Flickr: Humboldt State University's Photostream Railsでログ出力を行う、ログレベルを設定する、新たにロガーを作成する、ログのフォーマットを設定する方法などRailsのログに関することをまとめました。 動作確認 Rails 4.1 目次 1. ログを出力する 2. ログレベルを設定する 3. 新たにロガーを作成する 4. ログのフォーマットを設定する 1. ログを出力するloggerを使うことでコントローラー、モデル、ビューなどからロガーで設定されたログ出力先にログを出力することができます。 logger.debug "ログ出力先にDebugレベルで情報を出力する" 次の5つのメソッドが用意されており、それぞれログレベルに出力有無が変わります。 logger.fatal "致命的なエラー情報" logger.error "
こんにちは、鈴木です。 Rails 4.1.0 で追加される ActionPack Variants を使ってみます。 ActionPack Variants とは ActionPack Variants とは、デバイスごとに View を切り替えるために導入された仕組みで、コントローラで request.variants に適当な値(例えば :tablet)を設定しておくと、それに応じた View ファイル(例えば index.html+tablet.erb)が使用される、というものです。 これを利用することで、デバイスごとに使用する View ファイルを切り替えることが簡単に実現できます。 ActionPack Variants を使う それでは ActionPack Variants を使ってみます。 やることは簡単で、コントローラで request.variants に適当な値を設
環境: rails (4.1.6) activerecord (4.1.6) mysql2 (0.3.16) Rails4 というか Rails でカウンター用カラムをインクリメントする簡単な方法がないか調べてみた。 やりたいこと MySQL だったら以下のような SQL を発行したい。 update books set reviews_count = reviews_count + 1, updated_at = now() where id = ? カウンターのインクリメントと同時にソートのために更新日時も一緒に更新したい。 検証用環境の作成 $ bundle exec rails new counter_app -d mysql -T --skip-bundle $ cd counter_app $ bin/bundle install --path vendor/bundle モデ
何が問題か API として公開している Rails Server に対して、Invalid な JSON データを送信した場合、 parse error が発生した場合は、適切にリダイレクトやエラーメッセージの制御を行いたい。 だけど、挙動としては、Controller に到達する前の Rack Layer で勝手に parse 処理が走ってしまい、 Rack Layer で raise されて勝手に落ちてしまう。 具体的には ActionDispatch::ParamsParserが先にパラメータを見ている。 吐かれるログはこんな感じ Started PUT "/api/users/5001" for ::1 at 2016-07-07 16:24:16 +0900 Error occurred while parsing request parameters. Contents: {
こんにちは、hachi8833です。Rails 5.1beta1がリリースされました。Rails 5リリースからのコミット数は既に3500件を超えているそうです。 公式ニュース: Rails 5.1.0.beta1: Loving JavaScript, System Tests, Encrypted Secrets, and more なおRails 5.0.2.rc1も並行してリリースされました。 公式ニュース: [ANN] Rails 5.0.2.rc1 has been released! beta1にみるRails 5.1の姿 公式ニュースの情報では、5.1で予定される多数の更新の中から以下をピックアップしています。週刊Railsウォッチをお読みの方は多くの項目に見覚えがあるかと思います。 5.1リリースまでに詳細は変わる可能性がありますが、この方向性で進むと考えてよいと思います
October 8, 2015Effectively Handle iOS Payments in Rails It’s no longer sufficient to run an exclusively web-based application. You need a mobile strategy if you’re to stay ahead of the competition. However managing payments on mobile is a developer’s worst nightmare. Stripe has solved this very well for web-based applications, but on mobile, it’s a different story. How Payments Work on iOS Purchas
こんにちは。マーケティングプロダクト開発部の長田です。 この記事では、私が現在進めているプロジェクトで、Webpackerを使ったJavaScriptのモジュール管理を導入したので、それについて紹介したいと思います。 Webpackerとは Webpackerとは、Webpackを用いてRails上でJavaScript開発をするために必要な一連の流れを提供してくれる、Rails organizationで開発されているgemです。 これまで、Rails上でJavaScriptのパッケージをどのように管理するか、また、モジュール依存をどのように解決するかについて、多くの選択肢があり、それらをどう組み合わせて使うのかについて悩まされてきました。 このブログでも過去に何度か記事が投稿されており、その中でも複数の選択肢が上げられています。 webpackを使った Rails上でのReact開発
RC 1もリリースされて流石にもう増える事はないと思うので、Rails 5で追加されたinitializerについてざっとまとめてみる。 active_record_belongs_to_required_by_default.rbbelongs_to associationsのrequireをdefaultでtrueにする為のinitializer。 # config/initializers/active_record_belongs_to_required_by_default.rb # Require `belongs_to` associations by default. This is a new Rails 5.0 # default, so it is introduced as a configuration option to ensure that apps # m
こんにちは、鈴木です。 以前のエントリで「includeされた時にクラスメソッドとインスタンスメソッドを同時に追加する頻出パターン」をご紹介しました。 今回は、それに関する定形処理を肩代わりしてくれる ActiveSupport::Concern をご紹介します。 includeされた時にクラスメソッドとインスタンスメソッドを同時に追加するパターン Before 以前のエントリ(includeされた時にクラスメソッドとインスタンスメソッドを同時に追加する頻出パターン)でご紹介していますが、おさらいしましょう。 module M def self.included(base) base.extend(ClassMethods) end module ClassMethods def foo puts 'foo' end end def bar puts 'bar' end end
Ruby on Rails の 5.1.0.beta1がリリースされましたね! weblog.rubyonrails.org 仕事でRailsを使うものとしてちゃんと触っておかねばと思い、まずは自分の好きなJavaScript周りがどれぐらい良くなったのか見てみたところかなりびっくりしました。JavaScriptすごく開発しやすいです。 webpack があって yarn がありますし、ReactやVue、angular まで rake タスクでセットアップできます。ちょっと前までRailsでJavaScriptやるのが辛いなんて言っていたのが嘘みたいです・・・。 今回はRails 5.1.0 で Vue.js を使って新しくプロジェクトを作るところまでやってみました。 rails new rails webpacker:install:vue Webpackでのビルド Hot Modul
Ruby on Rails v3.2.11 HTMLで表示をする場合、デフォルトのlayoutとしてapp/views/layouts/内のapplication.html.erbが使用されます。1つのRailsアプリケーション内で、複数のlayoutを使い分けたくなった場合のやり方についてのメモ。 renderする際にlayoutを指定 controllerの中でrenderする際にlayoutを指定できます。デフォルトのlayoutとは別のlayoutとしてapp/views/layouts/にanother_layout.html.erbを用意した場合、このように書きます。 respond_to do |format| format.html { render :layout => "another_layout"} end controllerごとlayoutを指定 1つのcont
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く