deviseのconfirmable
モジュールを使うとデフォルトでemailを変更するときに再確認メールを送信する。
(これがサインアップ時のメールと同じ内容なので使い辛いというのは別の話)
設定でオフにできる。
config/initializers/devise.rb:
Devise.setup do |config|
config.reconfirmable = false
end
deviseのconfirmable
モジュールを使うとデフォルトでemailを変更するときに再確認メールを送信する。
(これがサインアップ時のメールと同じ内容なので使い辛いというのは別の話)
設定でオフにできる。
config/initializers/devise.rb:
Devise.setup do |config|
config.reconfirmable = false
end
class Comment < ApplicationRecord
belongs_to :user
belongs_to :post
alias_method :sender, :user
def reciever
post.user
end
end
こうしておくとメール送るときにわかりやすい。
if comment.sender != comment.reciever
NoticeMailer.recieved_comment(@comment).deliver_later
end
users_url
とかがメール内でも使える。
class ApplicationMailer < ActionMailer::Base
include Rails.application.routes.url_helpers
end
sprocketsやturbolinksを使っていて全css, jsを読み込んでるとしても何だかんだ言って今どのページにいるのか知りたい場合が多いです。
thoughtbotのflutieに始まり色んなところで勝手にcontroller名とaction名をつなげたものを使っていますがそれをベースに動く機能が必要になったので、つなげるルールを明確化するためにgemにしました。
komagata/view_id: Identifier your view from controller and action.
抽象的な名前を取りすぎな気がしますが、とりあえず・・・。
名前のつなげ方でうすが、controllerとactionを--
でつなぎます。
ネームスペースは-
でつなぎます。
PostsController#index => posts-index
DeletedPostsController#show => deleted_posts--show
Admin::DeletedPostsController#create => admin-deleted_posts--create
いつも使う処理なのでgemにしました。
fixed_footer-rails | RubyGems.org | your community gem host
Gemfileに書きを追加。
gem "fixed_footer-rails"
$ bundler install
application.jsに書きを追加。
//= require fixed-footer
jsから呼び出す。例えばfooter.coffeeを作って下記のように書く。
$(document).on "turbolinks:load", ->
new FixedFooter("your-own-footer-id")
この設定をいつもやります。
class ApiController < ApplicationController
end
だとかっこ悪いので、
# config/initializers/inflections.rb:
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.acronym "API"
end
こうする。
class APIController < ApplicationController
end
気持ちいい。デフォルトの大文字設定に欲しいな。
$ rails _4.2.7.1_ new foo
2016年12月26日現在、macOS Sierraでcapybara-webkitを動かすのは少し厄介です。
brew install qt
とかbrew install qt5
では動きません。
qtを本家からインストールし、PATHを通し、ソースを書き換える必要があります。
qt-opensource-mac-x64-clang-5.5.1.dmg
# ~/.zshrc
export PATH=~/Qt5.5.1/5.5/clang_64/bin:$PATH
~/Qt5.5.1/5.5/clang_64/mkspecs/features/mac/default_pre.prf
の15行目の、
isEmpty($$list($$system("/usr/bin/xcrun -find xcrun 2>/dev/null"))): \
を
isEmpty($$list($$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null"))): \
に変える。
もうしばらくすればbrewで行けるようになるとは思いますが・・・。
僕が断念していたこの問題。
gakubuchi gemが落ちる - komagataのブログ
@tkawa さんのIssueきっかけに @_yasaichi さんが直してくださったそうです。
sprocketsなど追えてないのですが、ActionView::Base#asset_digest_path
に問題があったようです。
無事僕のcapistrano deployも落ちなくなったようです。ありがたい!
qiita-markdownを含んだGemfileをHerokuにpushするには - Qiita
こちら、HerokuのBuildpackの仕組みが環境変数ベースのものからちゃんとしたサブコマンドが用意されたのでそちらを使わないと動きません。
Buildpacks | Heroku Dev Center
素の状態だとqiita-markdownが依存してるcharlock_holmes
とrugged
がインストールできません。
cmakeが必要なのでcmakeを入れてくれるbuildpackを入れます。
$ heroku buildpacks:add --index 1 https://github.com/rcaught/heroku-buildpack-cmake
libicu
が必要なため、Aptfileに書いたライブラリをapt-getでインストールしてくれるbuildpackを使います。
$ vi Aptfile
libicu52
libicu-dev
$ heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-apt
$ heroku buildpacks
1. https://github.com/heroku/heroku-buildpack-apt
2. https://github.com/rcaught/heroku-buildpack-cmake
3. heroku/ruby
aptが使えるならいろいろやりやすそうです。