RailsでJavaScriptでの遷移時にフラッシュを表示させる
調べるとフラッシュに相当する文言を隠して( display: none
とか?) おいて、JavaScriptで表示させる( display: block
とか)の方法しかなかった。GETパラメータで送るのヤダなぁと思ったので別の方法を考えた。
アクションを作ってフラッシュ付きでリダイレクトさせる
具体的にはこう。
location.href = '/items/redirect_with_flash_message';
class ItemsController < WebController def redirect_with_flash_message flash[:alert] = 'ログインが必要です' redirect_to new_user_session_path end end
ransackでキーワード引数を変数にする
ransackで検索を行う場合、キーワード引数で条件を指定するが、
Item.ransack(key_matches_any: value).result
ここの key_matches_any
を変数にしたい。
キーワード引数の説明をよく見ると
1.9 でも、呼び出し側のキーワード引数はできていました。
log("Hello!", level: "INFO")
このキーワード引数は { :level => “INFO” } というハッシュとして当該メソッドに渡されます。 受け取り側でこのハッシュを分解する処理が必要でした。
とあるので、従来どおりキーワード引数を使わずハッシュで渡してあげれば良い。
Item.ransack({"#{key}_matches_any" => value}).result
ということ。多分他のキーワード引数を使っているメソッドの実行でも使えると思う。
2019/12/04追記
普通にキーワード引数に変数を使えた!
Item.ransack("#{key}_matches_any": value).result
でおk
TypeError: Cannot read property 'compilation' of undefined エラーが出た
npm run build
したら TypeError: Cannot read property 'compilation' of undefined
エラーが出た。パッケージごちゃごちゃしたのが行けなかったかなぁ。。
いろいろググってなかなか解決策が見つからなかったけど、結局
TypeError: Cannot read property 'compilation' of undefined at OptimizeCssAssetsWebpackPlugin.apply (xxx) :
とあるところの二行目のパッケージの依存関係だった。
TypeError: Cannot read property 'compilation' of undefined OptimizeCssAssetsWebpackPlugin
とかでググると同じように依存関係で困った人のStack Overflowとかが引っかかる。そのバージョンで npm install パッケージ名@バージョン番号
してから npm run build
すればおk
【WordPress】WP_Queryで 'orderby' => 'post__in' を指定したときに 'order' => 'DESC' が効かない
array_reverse してあげればいいんじゃないかな? $favorites は投稿IDの配列ね。
// ダメ $wp_query = new WP_Query(array('post__in' => $favorites, 'posts_per_page' => -1, 'orderby' => 'post__in', 'order' => 'ASC')); // OK $wp_query = new WP_Query(array('post__in' => array_reverse($favorites), 'posts_per_page' => -1, 'orderby' => 'post__in'));
はてなブログでSyntax highlightする方法が全然わかんねー。書いてある通りにやってるんだけどなんで?
BuddyPressから送られる登録メールを認証しようとしたら嵌った
コーポレートサイトとサービスのサイトを別ドメインで運用しているため、サービス(BuddyPress)からコーポレートサイトのドメインでメールを送るにはSMTPの設定が必要。 設定していないとGmailで受信したときにスパムの可能性があるアイコンが付けられてしまう。他のメーラーでも受信されないなどの問題があるかもしれない。
今回使ったのはWP Mail SMTP。 設定方法はこちらを参考にさせていただいた。
具体的な設定は次の通り。SMTPパスワードはさくらのサーバーコントロールパネルからwebメールにログインするときと同じパスワード。
「送信元アドレス」と「送信者名」でそれぞれ「Force From Email」と「Force From Name」のチェックが必要かもしれない。
ここまで設定して上のタブからEmail Test > [Send Email] をクリックとすると成功! Gmailで見ても!アイコンが消えている。
ところがBuddyPressから送られてくる登録メールは未だに!アイコンが付いている…。 どうやらメール設定の更新が必要なもよう。
qiita.comhttps://qiita.com/sayama0402/items/a51f3dcd9896c169b5eb
Reinstall emails を行ったところ、無事BuddyPressからでも!アイコンが消えた!
WordPressにStripe決済を入れたかったのでプラグインを検討してみた
表題の通り。自分が必要なこと目線なので漏れがあるかも。
WP Full Stripe (本命)
無料版で買い切りの支払い(インライン表示)、 有料版でサブスクの支払いとポップアップ表示ができる。
インライン表示ならログインユーザーのメールアドレスを予め埋め込むことができる。 DBに複数のテーブルが作られ、フォーム(テンプレ)と支払い結果がそれぞれ入ってくる仕組み。 どの投稿から購入したかをDBに入れられると良いが、それはWebhockを使って書き込むしかないのか?
サブスク用途には問題なさそう。サブスクの解除もできる。ローカル環境だとメールが飛ばなかったが…。
Stripe Payments
投稿を拡張してファイルダウンロードできる仕組み。 かなり投稿を汚すし個人的にはイマイチ。素材販売サイトならぴったりだとは思う。 有料版ではサブスクもできるらしいが試していない。
WP Simple Pay Lite
こちらも投稿を拡張する仕組み。ファイルダウンロード機能もない? 有料版ではサブスクもできるらしいが試していない。
RSpecでユーザーエージェントを変更してリクエストする
get :endpoint, { params: {} }, headers: { 'HTTP_USER_AGENT' => 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36' }
みたいなカンジ