Rails

【Rails】devise_mailで送信元メールアドレスを動的に変える

Railsでdeviseを使ってメール送信機能を作るとき、送信元のアドレスは通常いつも同じで済むことが多い。 セオリーなのは、 config/initializers/devise.rb にある config.mailer_sender の項目に送信元アドレスを書くことだろう。 # ==> Mailer Configuratio…

【Rails】RSpecで特定のテストケースだけbeforeをスキップする

RSpecでは、before do ... endを使うことで、各テストケースの前に共通して行う処理を記述できる。これを使ってテストデータを投入する処理などを書いておくと、テストケースが書きやすくなる。 しかし、例えばデータが1件もない状態での挙動をテストしたい…

【Rails】Strong Parametersにおけるrequireとpermitの違い

RailsでStrong Parametersを使ったパラメータの受け渡しをするとき、よく params.require(:task).permit(:title, :content)のように書く。このとき、requireと permitはどう異なり、なぜ両方使うのかがよくわからなかった。 公式にあたってみると、APIドキュ…

RailsのActiveSupport:Concernの役割

Railsで共通部分をmoduleに切り出し、Concernを使う機会があったが、そもそもRubyであまりmoduleを使ったことがなく、Concermが通常のmodule機能と比べてどう特殊なのかわからなかった。この機会におさらいしてみる。 Rubyのmoduleの使い方 まずはRails以前…