Rails Developers Meetup 2019(2019/03/22 - 23)
Rails Developers Meetup 2019(2019/03/22 - 23)
Rails の問題は Rails のベストプラクティスがフロントエンドのベストプラクティスの邪魔になるどころか全く逆方向で相反してる点です。DHHの思想がフロントエンドと根本的に逆行してる。そういう人が作るフレームワークなのでwebpackerの抽象化を根本的に間違ったりする。 — prev.js (@mizchi) December 1, 2020 昨日もリプライで少し書いたけど、DHH自体が直近のHeyの開発でも明確にJavaScriptというものを触れないようにすることを是としているような主張をしているので、DHH wayが色濃く反映される以上この状態はもう避けられない気がしている — potato4d / Takuma HANATANI (@potato4d) December 1, 2020 Railsがフロントエンドの最先端をゆく人々1から良く思われないのは事実として。 Vie
この記事は、 Rails を主戦場としている自分が今後学ぶべき技術について(随筆) | うなすけとあれこれ についてのアンサー記事です。 うなすけ君が Ruby on Rails で育ってきたように、僕も JavaScript とともに育ってきたという自覚があります。なので、これについて書くことは、ポジショントークは避けられない、という感覚があります。 冷静に比較しようとも思いましたが、やっぱり開き直って思いっきりポジショントークをすることにしました。そっちのほうが面白いと思うので。 自分の基本的な主張は、こちらの記事にあるとおりです。 Frontend Study #1: 基調講演 - Frontend 領域を再定義する 自分と Ruby on Rails 僕は、キャリアとしては Rails の会社で JavaScript を書いてきたことが多かったです。学生の頃は socket.io
はじめに OmniAuthの公式のwikiを読んで学習した内容を備忘録としてこちらに投稿します。 OmniAuthって? Deviseのバージョン1.2から追加された、OAuthに関するモジュールのこと。 このモジュールを利用すれば、twitterやfacebookといったプロバイダーに登録されている情報でユーザー認証を行うことができます。 Before you start config.omniauthは、アプリケーションにomniauth プロバイダーのミドルウェアを追加します。これは、config/initializers/omniauth.rbにconfig.omniauthを記述するべきではないことを意味します。なぜなら、そうしてしまうとお互いのomniauth プロバイダーのミドルウェアが衝突し、認証ができない事態に陥ってしまうからです。 config/initializers
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: A Deep Dive into CSRF Protection in Rails 公開日: 2017/07/31 著者: Alex Taylor サイト: Ruby Inside 2017/10/23: 初版公開 2021/11/26: 更新 現在Railsを使っていればCSRF保護を使うことがあるでしょう。この機能はRailsのほぼ初期から存在し、即座に導入して開発を楽にできるRailsの機能のひとつです。 CSRF(Cross-Site Request Forgery)を簡単に説明すると、悪意のあるユーザーがサーバーへのリクエストを捏造して正当なものに見せかけ、認証済みユーザーを装うという攻撃手法です。Railsでは、一意のトークンを生成して送信のたびに真正性を確認することでこの種の攻撃から保護します。 最近私がUnboun
SendGrid metadata and RailsWritten August 7, 2012. Tagged SendGrid, Ruby on Rails, Action Mailer. We have a Rails app that sends its mail through SendGrid. SendGrid lets you specify metadata in your mail headers, which you can put to excellent use. The activity logSendGrid's highly useful activity log (docs) lists the last week of sent mail. Not the full mail, but the recipient e-mail address, the
それなりの規模のサービスを運用していると、不可解なエラーに遭遇することはよくあるものです。その中でもデータベース関連のエラーは一見難解な問題に見えるかもしれませんが、原因調査に役立つ情報をさえ出力すればたいていの場合は容易に原因を特定できるものです。というわけで、Rails でよく遭遇するエラーの調査に役立つ情報を出力する gem を作成しました。 activerecord-debug_errors 現在次のエラーをサポートしています。 ActiveRecord::LockWaitTimeout (MySQL のみ) ActiveRecord::Deadlocked (MySQL のみ) ActiveRecord::ConnectionTimeoutError 以下、具体的な例を用いてどのような情報が表示されるか説明します。 ActiveRecord::LockWaitTimeout Ac
と表示されてしまう。空白スペースがいつの間にかplus(+)に変わってしまい、デコードする時に、plus(+)がそのままになってしまっているという問題。 背景 そもそもHTTPにおいて、GETやPOSTのパラメーターはapplication/x-www-form-urlencodedという形式に変換されるものである。 application/x-www-form-urlencodedという形式に関しては https://wiki.suikawiki.org/n/application%2Fx-www-form-urlencoded あたりを参考に。 大事なことは、application/x-www-form-urlencodedという形式に沿ってエンコードすると、 空白スペースが「+」に変換されるということである。 原因 さて、railsにおいていつapplication/x-www-fo
Rails では POST リクエストによるリダイレクトができないようです。というか、HTTP protocol の RFC で定められていて、POSTリクエストではリダイレクトできないらしい。GETのみ。Stack Overflow に書いてありました。 ruby – redirect_to using POST in rails – Stack Overflow — 環境 — rails-4.0.1 devise-3.2.2 HTTP の POST メソッドによるリダイレクトはできなかった 想定したケースは、ログインしていないユーザーが、フォームのサブミットによる POST リクエストで複数ページを遷移している途中で、ログイン用ページに移動してログインした場合。この POST リクエストのページ遷移では DB に対する処理はなし。ショッピングカートのようにセッションに情報を保存させるだ
Rails.application.config.middleware.use OmniAuth::Builder do configure do |config| config.path_prefix = '/login' end provider :developer unless Rails.env.production? provider :github, ENV['GITHUB_KEY'], ENV['GITHUB_SECRET'] end OmniAuth::Configure#path_prefix を指定する。 関連URLが/auth/githubや/auth/github/callbackから/login/githubや/login/github/callbackに変更できる。 もっと詳しく builder内で利用できるDSLはここに定義されている。 その他のpathはO
こんにちは、hachi8833です。BigBinaryシリーズ第3弾をお送りいたします。Rails 4以前で使い分けの面倒だったrakeコマンドがRails 5ではrailsコマンドで実行できるようになっています。 元記事 Rails 5 brings consistency by wrapping all rake commands using rails(米国BigBinary社のブログより) 確認に使った環境 Rails 5バージョン: 5.0.1(5-0-stable) Rubyバージョン: 2.4.0p0 Rails 5ではrakeタスクをrailsコマンドで実行できるようになった 注: この記事ではコマンド実行時にbundle execのbashエイリアスとしてbeを追加しています。このエイリアスをbashに設定していない場合はbundle exec railsか./bin/r
始まり Facebookからのサインアップ時のみ、確認メールを飛ばすことなくそのまま続きの処理をする、という流れにするために、confirmableで何をやっているのかのコードを読んだ。 サインアップ時の処理 まずはサインアップ時の処理をやっているapp/controllers/devise/registrations_controller.rbのcreateメソッドから見て行く。 ここを見ると、まず新規Userモデルを保存した後、user.active_for_authentication?を呼び出している。 このメソッドの大元はlib/devise/models/authenticatable.rbに書かれているが、lib/devise/models/confirmable.rbでオーバーライドされて以下のようになっている。
if Rails.env.production? Rails.application.config.session_store :cookie_store, key: '_my_session', expire_after: 1.weeks, domain: 'mydomain.com' else Rails.application.config.session_store :cookie_store, key: '_my_session', domain: 'localhost' end 原因など Ruby On Railsのdeviseは本当に優秀であっという間にFacebookのログインは出来るようになったのですが、どうもlocalhostで試した時に「Google OAuthの挙動がおかしいような?」となり調べました。 どうもエラーでググると「provider_ignores_st
This guide covers using multiple databases with your Rails application. After reading this guide you will know: How to set up your application for multiple databases. How automatic connection switching works. How to use horizontal sharding for multiple databases. What features are supported and what's still a work in progress. As an application grows in popularity and usage, you'll need to scale t
How to GraphQL with Ruby, Rails, Active Record, and no N+1November 9, 2020 You work on a mature web application that cleanly separates backend and frontend. The server-side code, written in Ruby, is mostly responsible for translating HTTP requests into SQL statements (with the help of an ORM) through rich and well-documented API. You choose GraphQL over REST to streamline your endpoints, but your
Eager loading to prevent n+1 queries is great if you know how to do it! However, the syntax and use cases can be a little nuanced. Here are 10 tips for getting it right. 1. Use the Bullet gem to identify n+1 queries to fixInstall the gem, configure the settings, then browse around your app in development. You’ll get a popup alert on every n+1 query and see an indication of how to resolve it by sho
Authentication is verifying that somebody is who they claim to be. Using Auth0, a third-party service, let’s implement an identification process for users of our application. Auth0 provides a universal authentication & authorization platform for web, mobile and legacy applications. They have gems that integrate nicely with Rails to accomplish this. To start, you’ll need to get your application key
前回までは、deviseを用いることで、Railsチュートリアルなどの実装に比べて、ほとんどプロダクトのコードを記述することなくユーザー認証機能を追加できることを体験しました。今回は、SNS認証で定番のgemであるOmniAuthを使ってFacebook/Twitter認証機能を実装します。 OmniAuthの概要 OmniAuthは、複数の外部サービスのアカウント情報を使ってユーザー登録やログインを提供します。OmniAuthはサービスごとにストラテジー(Strategies)を管理する、いわば元締めのgemです。OmniAuthのストラテジーとは、外部サービスごとにOAuth認証に必要な処理が記述されており、Rackミドルウェアとして提供されます。 サービスごとのストラテジーは、 omniauth-[外部サービス名]のような名称のgemとして本体とは別のgemで提供されています。例えば
Auth0とは Auth0は誰でも簡単に導入できる認証・認可プラットフォームです。 引用: Auth0 -公式- Railsアプリであれば従来deviseなどのgemを使い認証機能を実装したり、omniauth-twitterやomniauth-googleなどのgemでソーシャルログイン機能を実装していたと思います。 そんな機能をローコードで実現できるのがAuth0です。 (※ 間違いあればご指摘ください🪓) こんなログイン画面がノーコードで実現できちゃいます😎 (※ ログイン画面自体のコーディングは必要ないけど、各種設定のために多少のコードは書きます。) 作業環境 MacBook Air (M1, 2020) Ruby 3.0.2 Rails 6.1.4 前提条件 既にRailsアプリが存在しているものとします。 (認証・認可機能は未実装) ちなみにAuth0実装前のルーティングは
というタイトルで先日 Kaigi on Rails 2021 で話してきました。 プレゼンで話せなかった内容なども含めてブログ記事にも書いておきます。 Intro Railsのことはけっこう知ってるけどNext.jsについて何も知らないという人をターゲットにしてNext.jsとは一体何なのか、いつどこで使えばいいのか、具体的にNext.jsのどういうところがいいのか、どういう機能があるのかという話をします。 最終的には普段Railsを書いているエンジニアが、Next.jsよさそうなんで使ってみようかな?と思ってもらえるといいかなと思っています。 Next.jsとは何か Next.jsのトップページを見てみましょう。 The React Framework for Production と書いてあります。これは読んで字のごとくですが、Next.jsというのはReactをベースにしたフレームワ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く