最近別ドメインのHTMLからajaxでAPIを提供することが多くなってきたのでメモ まず、以下のGemを入れてる。 gem 'rack-cors' Gemを入れたら ‘config/application.rb’に以下の記述を入れます。 # CORS対応 config.middleware.insert_before 0, Rack::Cors do allow do origins '*' resource '*', :headers => :any, :methods => [:get, :post, :options] end end ‘origins’は通信を可能にするドメインなどを入れておいて下さい。 localでテストする場合はlocalhostを入れておくのもいいです。 その場合はPortは3000からずらしておいたほうが安心かも知れない origins 'localhost
validationにcontextを指定しておくと、vaidationを切り替えることができます。 例えば、ユーザー作成時とユーザープロフィール変更時にvalidationを切り替えたい時などに使えます。 with_options on: :registrations_new do |new_record| new_record.validates :email, confirmation: true new_record.validates :password, confirmation: true new_record.validates :first_name, presence: true new_record.validates :last_name, presence: true end controllerでsave(context: :registrations_new)
概要 member の使い方 collection の使い方 まとめ 概要 Rails には index, show, new, edit, create, update, destroy の 7 つのデフォルトアクションが用意されています。 もし、これ以外のアクションを新しく追加したい場合、ルーティングに設定を追記する必要があります。 この場合、routes.rb をどう書くのか調べたところルーティングのメソッドに、member と collection と言うものがありました。 この 2 つの使い方を簡単にまとめました。 member の使い方 member は特定のデータに対するアクションに利用します。 例えば、ユーザーのフォローを行う follow アクションを新しく追加したいとします。 この場合、フォローを行うのは、特定のユーザーです。 『 A さんが B さんをフォローする』の
exception_notification slack_notifier を利用 実装方法 (1) gemfileに以下を追加 gem 'exception_notification', :github => 'smartinez87/exception_notification' gem 'slack-notifier' (2) bundle install bundle exec rails g exception_notification:install create config/initializers/exception_notification.rb (3)slackよりwebhook URLの発行 * 以下URLにアクセス https://"your_slack_name"slack.com/services/new * Incoming WebHooksで検索して「+A
namespace :hoge do desc 'Sample' task :fuga, ['piyo'] => :environment do |task, args| p args.to_a p args end end $ bundle exec rake 'hoge:fuga[1,2,3,4]' ["1", "2", "3", "4"] {:piyo=>"1"} rake taskの引数はHashと説明されることがあるけど、実際はTaskArgumentsでこいつのto_aメソッドで引数の値をすべて取得できる。 http://www.rubydoc.info/gems/rake/12.0.0/Rake/TaskArguments#to_a-instance_method ググっていいやり方見つからなかったからリファレンス眺めてたら普通にあった。 追記 2020-06-01 .ext
目的 デフォルト状態では、 新規登録時(confirmation)とメールアドレス変更時(reconfirmation)に送信するメールのテンプレートが共通で、細かく分けたい時に不便である。例えばメール本文(body)は条件分岐などで対処できるが、件名(subject)は変更できない。 deviseではテンプレートを分けるための拡張ポイントDevise::Models::Confirmable#send_on_create_confirmation_instructionsを用意している。 deviseを継承したモデルで拡張できるので、簡単に別のテンプレートを定義することができる。 今回のサンプルはこちらに置いています。 手順 Deviseのインストール
# == Schema Information # # Table name: users # # id :integer not null, primary key # email :string default(""), not null # encrypted_password :string default(""), not null # reset_password_token :string # reset_password_sent_at :datetime # remember_created_at :datetime # sign_in_count :integer default(0), not null # current_sign_in_at :datetime # last_sign_in_at :datetime # current_sign_in_ip :in
有名なRails用認証プラグインである devise は、機能毎にモジュール化されており必要な物だけを選んで使うことができます。例えば Confirmable というモジュールを使うと会員登録時に確認メールを飛ばすことができます。ただ、デフォルトではメールアドレス変更時には確認メールが飛びません。そこで下記のやり方でメールアドレス変更時にも確認メールを飛ばすようにしました。 やり方 User モデルを devise 用のモデルとして使っていると仮定します。 config/initializer/devise.rb に下記の一文を追加します。 config.reconfirmable = true さらに、メールアドレス変更時の一次保存用カラムを追加します。 rails g migration add_unconfirmed_email_to_user unconfirmed_email r
はじめに 2020/04/04 Rails6版はこちら [Rails] deviseの使い方(rails6版) Rails5で再検証版です。 以下のRails4のときのやつを現状(2016/11/12, 13)のバージョンで確認して、一部バージョン上がってうまく動かないところを修正したりした感じです。 [Rails] deviseの使い方(rails4版) 【前回】 rails : 4.2.0 ruby : 2.2.0 devise: 3.4.1 ↓ 【今回】 rails : 5.0.0.1 ruby : 2.3.1 devise: 4.2.0 あと、上の記事で最後に「全部まとめきれてないので、忘れないうちにちょっとずつ追加していこうと思います。」とか書いていながら全く追加することはなかったので、追加しようと思ってたものをちょっとだけ思い出して追加したバージョンです。 deviseとは ユ
今回は、Rails5にログイン管理機能ができるGemのdeviseを実装したいと思います。 ログイン管理というと、ユーザー登録と、登録時のメール認証、各ページの認証処理といった機能です。 Railsチュートリアルでは、学習の為、Gemを利用せずに自力で実装していますが、deviseのような便利なGemで簡単に実装する場合も多いので実際にやってみます。 全体の流れは、こんな感じ。 1.Rails への devise の導入2.設定ファイル3.deviseのviewを生成4.modelを生成5.認証で利用するカラムを設定6.ログアウトボタンを設置7.未ログイン時の実装8.メール送信の設定9.アクセスして確認 1. Rails への devise の導入gem 'devise' Gemfileに記述します。 $ bundle install --path vendor/bundle bundle
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く