Techこの広告は、90日以上更新していないブログに表示しています。過去7日間とその前の7日間を比較するといった場合は、CASE文が使えます。period期間毎に集計する対象期間を、7日間毎や30分毎に分けて集計したい場合は、TRANCATE()が使えます。以下は、過去28日間の登録者数を7日間毎に集計するという例です。1)で、今日とm.created_atの差を出します。-1しているので、差は0~13になります。この差を7で割り、少数点以下をTRANCATE()で切り捨てることで、0~3のグループに分けることができます。カレントディレクトリに作成。GemfileはOverwriteするか聞かれるのでY。--webpack=vueサーバーを起動して、http://localhost:3000で確認。5.1からはwebpackをサポートするようになったそうで、Vueを簡単に導入できます。webpacker:install:vuewebpackまたはwebpack-dev-serverを使うことで、webpackを起動することができます。webpack-dev-serverの場合は、以下のようなことをしてくれるそうですが、今回は試していません。bin/webpackこれで最低限恩開発環境のセットは終了です。S3からファイルを一括ダウンロードするには、公式クライアントであるaws-cliが便利です。ほかにもツールがあるようですが、今回の用途のためには公式ツール一択と考えて良いでしょう。aws-cliをダウンロードS3からほかのサーバーにファイルを移行する場合は、aws-cliが便利です。移行先のサーバーにaws-cliをインストールします。公式ドキュメントは以下の通り。2.6.5以上またはPython3.3以上が必要なので、もしインストールされていなければインストールします。--versionで確認をします。botocore/1.5.47次にaws-cliの設定を行います。docs.aws.amazon.comaws-cliの設定には、IAMユーザーのアクセスキーとシークレットアクセスキーが必要です。Managementを省略されたもので、ユーザー毎にアクセス権限が設定されています。アカウントはルートユーザーと呼ばれ、AWS上のすべてのサービスに対して完全なアクセス権限を持っています。サーバーで言うrootユーザーと同じで権限が強すぎるため、適切に権限を割り当てたIAMユーザーを作成して、これを使うことが推奨されています。ユーザーを作成していない場合やユーザーを追加したい場合は、IAMコンソールにアクセスし「ユーザー追加」をクリックします。作成途中の権限設定で、「AmazonS3FullAccess」を選択するようにしてください。json設定がうまくいっているか確認するために、s3のバケットを確認します。example.comS3からダウンロードファイルのダウンロードはコマンドひとつで可能です。ディレクトリ内のファイルをすべてダウンロードする場合は、オプション--recursiveをつけます。--recursiveたとえば、以下のようなコマンドになります。S3からほかのサーバーにファイルを一括でダウンロードするTweet広告を非表示にするもっと読むコメントを書く2017-10-31kaminariを使って外部APIのページネーションをする外部のAPIから取得したデータをkaminariを使ってページングするときのメモです。結論kaminariのpaginate_arrayメソッドに、以下のように配列とtotal_countを指定することでできる。今回は、jsonを出力するAPIを用意し、そのjsonをパースしてページネーションをするということをします。API投稿一覧を出力するだけのシンプルなAPIを作成します。こちらもKaminariをインストール済みとします。endendjson以下のようなjsonが出力されます。19:04kaminariを使って外部APIのページネーションをするTweet広告を非表示にするもっと読むコメントを書く2017-10-04jQueryで複数のフォームに文字数カウンターを表示する文字数カウンターを複数フォームに表示するためのjQueryです。コードHTMLは以下のようにします。.input-field以下に文字数を表示する.input-field__countをつくり、データ属性(data-count)に最大文字数を設定します。data-count="45"></div></div>jQueryは以下のようにします。input[type=text]に文字数カウンターを表示します。13:56jQueryで複数のフォームに文字数カウンターを表示するTweet広告を非表示にするもっと読むコメントを書く2017-07-20RailsでRSSフィードを作成する:builderRailsでbuilderを使ってRSSフィードを追加するためのメモです。要件Gemを追加しないルーティングを指定できる動的に更新できる最終的には、http://example.com/feed/でRSSフィードを提供することが目的です。今回は、上記の要件を満たすためにbuilderを使ってRSSフィードを作成しました。APIdockルーティング:routes.rbroutes.rbにルーティングを記載します。このとき、デフォルトのフォーマットを指定するのを忘れないようにしてください。}コントローラー:rss_controller.rbコントローラー側ではあまりやることはなく、@postsを取得するのみです。atomなどフォーマット毎に、RSSを提供する場合はrespond_toを使って指定します。endendビュー:index.rss.builderappview/rssにindex.rss.builderを作成します。endendこれで完了です。14:25RailsでRSSフィードを作成する:builderTweet広告を非表示にするもっと読むコメントを書く2017-07-06Rails5でコントローラー別に実行するJavaScriptを分けるRailsでコントローラー毎に実行するJavaScriptを分けたいときの対応方法です。対応方法としては、コントローラー毎にファイルを作り読み込むファイルは1つにしてコントローラー毎に実行するJavascriptを分けるという方法があるかと思います。1の方法でも良いのですが、Turbolinksを使うのであればファイルを分けるのは望ましくないので2の方法で実装します。HTMLにコントローラー名を設定JavaScriptからコントローラーを取得するために、HTMLのカスタムデータ属性を使いコントローラー名を設定します。bodyタグでカスタムデータ属性を使っていますが、ほかの方法でも問題ありません。Slimでカスタムデータ属性を設定する場合。コントローラー名を取得するHTMLからコントローラー名を取得します。$('body').data('controller');JavaScriptの量が少なく、とにかくシンプルにコントローラー毎に処理を分けたいという場合は、以下のように単純な分岐でも良いかもしれません。初期化処理をするしかし、これでは分岐が増えると大変なことになるので、以下のような初期化処理をつくります。コントローラー名と同じコンストラクタをインスタンス化して実行するという非常にシンプルなものです。}});JavaScriptの場合は、以下のようにコントローラー別にコンストラクタをつくります。console.log("userコントローラーで実行されます");}CoffeeScriptを使う場合は、以下のようにコンストラクタの名前に@を付けて外部から参照できるようにしてください。console.log("userコントローラーで実行されます")コントローラー名と同じコンストラクタを作ればインスタンス化して実行するようになります。RailsScriptを使うRailsScriptというGemを使うことでも可能です。RailsScriptも内部の実装は、上記の方法とほぼ同じようなものです。使い方が悪かったのか、Turbolinksとあわせると画面遷移したときにJavaScriptが実行されなかったので採用していません。2.0'を追加をしてインストール。app/assets/javascripts/application.jslayout/application.html.slimにnclude_rails_scriptを追加application.jsに設定を追加。.こんな感じで使えます。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。