2020-03-01から1ヶ月間の記事一覧

余計なテーブルを減らしてactive-hashで管理する。

使い方とかはネットに出てるので、個人的に理解のために足りなかった情報とかまとめておく。 インストールとかは置いといて 一応実装のポイントとして、ネットとかにもあるように、大事な方(実際にテーブルがある方)のモデルは普通にrails g modelで作って…

多階層セレクトボックス作ってた時の独り言

ajax通信でコントローラーに飛ぶ時にbeforeアクションでexceptに入れてないとそいつにも値をセットしようとするけどそんなんないって言われることある。 あとancestryのフォーム作る時みんなカラム名どうしてんだろ? 自分は孫までのセレクトボックスが次々…

苦手なajaxちょい復習。

ajaxの要点。つめてはないので、若干不正確かもしれないが、流れを思い出すためにメモ。 アクション名.json.jbuilderは コントローラー側の値をhtml側が要求したjson形式に整える場所。 右側を左側に突っ込む感じ json.text @post.text json.date @post.crea…

fontawesomeの使い方

ちょっとカリキュラムで使ったくらいで、個人的にfontawesome使ってなかったな、と思ったので一回まとめた方がいいだろう。ちなみにfontawesomeまとめようと思ったきっかけはある記事読んでて%i.fas.fa-chevron-downって何やねんって思ったから。 iはiconでf…

ancestry その2

追記予定 参考記事 https://qiita.com/kenzoukenzou104809/items/07f6b5f7fdcf2761ac8f この記事参考に現在作成中 https://qiita.com/ATORA1992/items/bd824f5097caeee09678 https://umakki.com/archives/36

フォームを追加していくjs

※注意。ハムルだけどインデントおかしいのでそこは注意。多分はてなブログ自体がhtml編集できるからスペースが無視されるんだろう。エスケープするか自分で作ったアプリでも見とけ。 先にaccepts_nested_attributes_for_テーブル名でメモ書いといたけどその…

ancestry その1

子要素孫要素の作り方は結構記事あったので下の参考記事でも読めばいい。 DBにどんな風にancestryが入るかを説明する。(自分がネットから拾って来て使ってるseedファイルを例にしてるから変な入れ方すると変わるかもしれんけど、要は祖先のidがancestryカラ…

fields_forとaccepts_nested_attributes_for 重要

form_forで@itemとか渡してフォーム作ってる時に、アソシエーションやらの関係で別のモデルへの登録も同時にしたいということはよくあると思う。 itemに複数枚画像を関連づけることができるような場合、Itemモデルはhas_many :imagesでImageモデルはbelongs_…

ビューによってページにあてるscss(とかjs)を変える

マニフェストファイルのrequire treeを削除して config/initializers/assetsに Rails.application.config.assets.precompile += %w( hoge.scss ) とか書いてプリコンパイル追加して(jsでも大体同じ手順) ビューファイルの方で = stylesheet_link_tag 'hoge' …

アプリで使う画像の読み込み、部分テンプレート読み込み

link_to image_tag("logo.png"), root_pathみたいにimagesの画像をリンクにしたい時にimages以下のlogoフォルダに入れてた場合は link_to image_tag("logo/logo.png"), root_pathみたいに書くよ。 画像名だけとかapp/assets/images/logo/logo.pngはエラーに…

なんかまとまりないけどメモ用の記事

県名を整数型で登録するプルダウンメニュー作成に参考になりそうな記事 https://qiita.com/dawn_628/items/8c4293831bcccf332b9a プログレスバーを作るのに参考になりそうな記事 https://qiita.com/milneo/items/6d6a3116977b262a629d ただしレスポンシブで…

hamlの復習

色々新しいこと試す時にhamlだと省略されすぎてて若干わかりづらかったので、個人アプリ弄ってる時はerbで適当にsassあててたが、今後はチーム開発での記述になるので、チーム内での記述はもちろん個人でもhamlを使ってネスト構造のscssをBEMに則った命名で@…

テストコード書くか

とりあえずrspecでかなりハマったことメモ。 gemの中にchromedriver_helperというのが入ってて(多分最初から?)、それがio/likeってとこを読みに行ってたらしく、それのせいでrequire 'rails_helper'が正常に動いてなかった。下に挙げた記事はテストコード…

今さらなんだがvarchar等の型名とrailsのマイグレーションファイルでの定義の関係について

馬鹿みたいな話なんだが、 電話番号をもともとt.stringで作っといて、ネットで電話番号の型はvarcharが良いと見て、t.varcharでmigrateしようとしたらそんなもんねーよってなった話。 railsでstringで定義したらmysqlではvarcharになる。 t.string :string_l…

カリキュラムで推奨されたreferences型がもう使えなくなっていた

railsは仕様変更が多いんだろうな思った。 カリキュラムではreferences型が推奨されていて、それを使ってたワケだが、いつの間にか外部keyの型をreferences型にするとmigrateが通らなくなってたのでメモ。 5.1から?自動で作成されるidがbigint型になったか…

deviseを使ってウィザード形式のユーザー登録

普通にインストールして rails g devise:intall でdeviseのヘルパーメソッド使えるようにして (config以下に設定ファイルが生成される) rails g devise user でモデルを作成してmigrate rails g devise:views でviewファイルを作成 confirmations, mailer, p…

正規表現でvalidation

意味わかってた方がいいだろうけど、精度をあげるのはキリなさげなのでこの辺り参考にしながら書く。行頭^と行末$安易に使えないのでそこだけ気つける。まぁ逆に言えば文字列先頭\Aと文字列末尾\zで囲うと覚えておけばいいんかな。ちな、Aは大文字zは小文字…

しばらくは5.2.4で

チームで使ってるrailsのバージョン確認したら5.2.4.1でrubyは2.5.1だったのでメモっとく。ちなみに個人アプリ発表の際は自分は5.1.7使ってた。rubyのバージョンは一緒だったのでそちらは大丈夫だが、railsは多少バージョン違うので忘れないうちにメモ。 ち…

独り言

リレーショナルデータベースのエンティティ同士の関係は原則として全て1対多!!! (もちろん多対多を中間テーブルで解消するからなんだけれども)。 シンプルだけど機械的にそうなってないテーブルを排除できるから、考え方メモ。

DB設計 第3正規化

DB設計する時に正規化すると思うんだけど、結局第3正規化だけ押さえとけば良さそうだし、言葉にしとこう。(1と2は普通にそうしないと気持ち悪いだろうからいいでしょ) 要はそのテーブルの非キー列は(、ってか主キー以外のカラム)は必ず主キー列に対し…

vue.js その1

0: ポイントと思った部分 new Vue({})でインスタンを作ってその中にオプションを書いていくワケだけど、 el:はどのhtml要素と繋がるのか data:{}はどんなデータがあるのか methods:{}はどんなメソッドがあるのか があるのかを書く場所であるということ 1:…

ちょいハマり多対多

モデル作った時にアンダースコアを使っていても、クラス名にアンダースコアは含まれないので、コントローラーでは UserGame.create(hogehoge)とかになる。 多対多は大抵間になんか入れると思うけどクラス名見たらそれ入ってないから、コントローラーの記述の…