【Rails】has_many through について

最近、active recordをダラダラいじってるけど全然慣れない。。今回は少しでも理解を深めるために「has_many through」構文?のオプションを省略せずに書いてみたのでメモとして残して置く。テーブル構造は、以下のようにrailsの規則どおりのもの。 users(id)…

【Rails】where like検索の使い方メモ

今回やりたかったことはjoin先のテーブルからLIKE検索したかった。今回使うモデルは2つで以下の形。 class Category < ApplicationRecord has_many :movies end class Movie < ApplicationRecord belongs_to :category endこんな感じでできた Movie.joins(:c…

【css】marginを取消(リセット?初期化?)する

css

css全然わかってないけど、デザインちょっと調整してとか言われるとchromeのデベロッパーツール使って、チクチク直すことが多々あります。で、上書きはよくやっていたけど、スタイルの取消?リセット?初期化はやったことなかったかも。 <style> /* 既存のスタイル */</style>…

ionic state resetとrestoreの違い

それぞれのヘルプをみてみる $ ionic --help reset ・・・ Clear out the platforms and plugins directories, and reinstall plugins and platforms restore ・・・ Restore the platforms and plugins from package.jsonreset はplatformディレクトリとplu…

ionic(cordova) config.xmlを環境(development、production)毎に分ける

以前から気になっていた内容。 ionic か corodova の標準の機能でありそうだけどドキュメント眺めたり検索してもよくわからない。みんな必要な機能な気がするがどうやるのが正しいのだろうか。解決したかったこととしては以下 ・アプリのBundle Identifierや…

【ionic】ion-list ion-itemをタップしたときのhighlightの無効化

正しいやり方わからないけど、これでできたので自分用にいったんメモしておく .item.activated.item-complex > .item-content { border-color: #FFF; background-color: #FFF; }

【ionic】ionicPopup.promptの入力フォームがキーボードで隠れないようにする

app.js angular.module('starter', ['ionic']) .run(function($ionicPlatform, $localStorage, ParentService) { $ionicPlatform.ready(function() { if(window.cordova && window.cordova.plugins.Keyboard) { cordova.plugins.Keyboard.hideKeyboardAccess…

緯度経度の2点間の距離、角度と座標 - GoogleMap

今回はapache cordovaのGoogleMapのプラグインの話だけど、GoogleMapのAPIならきっと同じように取得できると思われる。計算方法とか調べていたが実際にGoogleMapに表示してみるとけっこうずれたりしてうまくいかなかった。で、プラグインのドキュメント見て…

【Go】Echo JsonにTemplateから生成したHTMLを埋め込んで返す

今回やりたかったことは以下。 ・HTMLのテンプレートを変数等に定義しておく。 ・テンプレートを元に動的な部分をHTMLに埋め込む。 ・生成したHTMLをJSONにいれてレスポンスとして返す。 package main import( "net/http" "github.com/labstack/echo" ) // V…

【redis】データのセットと取得するコマンド

Redisで扱えるデータ型いくつかあるようだけど今回扱うのはString型で単純にKeyとValueをセットできるようにコマンドメモしておく。 配列とかハッシュ型もあるけど、自分の用途だったらjsonを保存してアプリ側でデータをゴニョゴニョするかも。1つセット $ s…

glideでlogrusのインストールエラー対応

Go

glideでgorm入れようとしたら突然logrusのエラーが。。。 [ERROR] Update failed for github.com/Sirupsen/logrus: The Remote does not match the VCS endpoint [ERROR] Could not update packages: The Remote does not match the VCS endpoint意味わから…

【Go】Echo アプリログ出力処理(複数ファイルへ)

実際使おうとすると調べる内容が細かい。。けどメモ。 logrusというのを使ってみる。ローテションはとりあえず考えない。log/log.go package log import ( "os" "fmt" "github.com/Sirupsen/logrus" ) var AppLog = logrus.New() var AppLog2 = logrus.New()…

【Go】Echo InternalServerErrorとNotFoundエラーを発生させる

こんなことできるのかmain.go package main import ( "net/http" "github.com/labstack/echo" ) func main() { e := echo.New() e.GET("/users", func(c echo.Contet) error { // エラーを返す return echo.NewHTTPError(http.StatusInternalServerError, "S…

【Go】Echo エラー処理を実装する

apiサーバーの実装でとりあえずのエラー処理中。とりあえず以下をハンドリングするような想定で。 ・ビジネスエラー ・システムエラー ・404エラー ・その他サーバーエラーディレクトリ構成はこんな感じ $ tree -L 3 . └── app ├── controller │ └── traking…

【Go】Echo Controllerを別Packageに分割する

細かい話だけどecho的には特にルールは決まっていなそう。main.go package main import ( "github.com/labstack/echo" "app/controller" ) func main() { e := echo.New() e.GET("/members", controller.GetMember()) e.POST("/members", controller.PostMem…

【Go】Echo JSONを返す

echoでjsonを返すサンプル package main import( "net/http" "github.com/labstack/echo" ) // レスポンスを表す構造体を定義 type Member struct { Id int `json:"id"` Name string `json:"name"` } func main() { e := echo.New() e.GET("/members", func(…

macにgoをインストールする手順メモ

Go

1台のPCで複数バージョンのGoを使用したいのでgvm(Go Version Manger)を使用する。https://github.com/moovweb/gvm ドキュメントどおりにやったらすんなり入った。Mac使ってるので「Mac OS X Requirements」のコマンド実行準備 $ brew update $ brew install…

labelクリックでinputにfocusする iOS対応

スマホで言えばこんなUIの入力フォーム。 この場合、画面の左半分がlabelで右半分がinput。で、気がきかないから気にしてなかったのだが、labelをタップしても入力できないということで親切でないということで修正しようとしたらちょっとはまったのでメモし…

【ionic2】ログイン機能を実装する

はじめに 今回やりたかったのは、まぁ普通のログイン機能をもつアプリ。実装したい要件としては以下 ・未ログインの場合は、ログイン画面を表示。 ・ログイン済の場合は、他の画面が見れる。実装方法としては以下のような形で行ってみた。 ・ログイン済みか…

【ionic2】apiリクエストをproviderで共通処理化する

はじめに 今回やりたかったことは以下 ・APIのURLを開発と本番で切り替えられるようにしたい ・アプリ全体で認証トークンをhttpヘッダーに含めたいこれらを満たすAPIリクエストの共通処理実装したのでメモしておく。 APIのURLを開発と本番で切り替える こち…

【rails】authenticate_with_http_token を使ってapiの認証機能を実装する

はじめに 今回やりたかったことはアプリからのリクエストを受け付けるapiの開発。やりたいことと流れは以下のようなイメージ・Emailとパスワードでログインを行う ・ログインに成功したらトークンと有効期限を発行してクライアントに返す ・クライアントは毎…

rails console で group by の結果を確認

やりかったことはemailが重複しているレコードの件数をしらべたかっただけ。 実行されているSQLが期待通りだったのでこれでいいのかと思ってたけど、全然期待した結果にならない。。 $ User.select('email,count(*)').group('email') > User.select('email,c…

【ionic2】ionicPageで各画面をurlに対応させる

はじめに ionic1のルーティングまわりはui-routerで検索すれば色々出て来たけどionic2で何で検索すればよいのかまだよくわかってないけどとりあえずやり方はわかったのでメモしておく。デバッグのときとかはブラウザでリロードしたいし。あれ、けど目的はそ…

【ionic2】画面遷移のアニメーションを変更する

やりたかったこととしては画面の遷移の際のアニメーションでandroidでもiosみたいに左から右にスライドするようにしたいとういこと。 本来はプラットフォームごとに奨励されているアニメーションを使うべきだとは思うのだがやっぱりiosをベースで考えている…

【ionic2】無限スクロールの使い方

なかなか手をだせにずにいたionic2を次の案件では使えるように準備中。とりあえずionic1でできてたことをionic2でもできるようになることが当面の目標。今回はapiから取得したjsonからリスト表示で、無限スクロールを実装してみる。blankでプロジェクト作成 …

rails5のapiモードを試した

はじめに 勉強もかねて簡単なapiをrailsで実装してみる。やりたいことは以下・ローカルPCで動作させてみる ・apiモード使ってjsonを返す ・dbからデータを取得する ・ページングに対応する ローカルPCで動作させてみる まずは rbenv を使って ruby環境でrail…

【angularjs】セレクトボックス(プルダウン)の使い方メモ

angularjs使うときはまたやりそうなのでメモしておくまず、配列はどこかに一箇所に定義しておく angular.module('myApp') .value('define', { 'area': { 1: '北海道', 2: '東北', 3: '関東', ・・・ }, });テンプレートから参照できるようにコントローラで $…

【ionic】angular-messageで入力フォームのバリデーションとエラーメッセージを実装する

はじめに 今回やりたかったことは入力フォームにバリデーション機能を実装して、不備があった場合は送信ボタンを押せなくして不備の内容を画面に表示するということ。今回は angular-messages というライブラリを使った。angular-messagesのインストール $ b…

【emacs】faceの文字色と背景色を変更する手順メモ

新しいモードを使うときにデフォルト色がちらつくことがよくある。毎回調べてる気がするので自分用にメモしておく。 ## 1. 色を変えたいface名を調べる M-x describe-face ## 2. 一覧が表示されるのでface名で検索 M-x list-faces-display ## 3. 該当のface…

【mysql】コミット前のselectの結果が更新前のままだった理由

ネタみたいだけど、また初歩的なミスをしたのでメモ。mysqlクライアントから確認 $ begin; $ insert into tests(id, name) values(1, 'test'); $ select count(*) from tests where id = 1; +----------+ | count(*) | +----------+ | 1 | +----------+期待…