約束の地

キャロ組

プログラミング -> Ruby on Rails

Rails で マイグレーション の履歴をすっ飛ばして スキーマ だけを適用させたい場合

結論 以下の手順をたどります。

Rails での タイムゾーン の設定

結論 config/application.rb に以下のように書いておけばよいでしょう。 config.time_zone = 'Asia/Tokyo' config.active_record.default_timezone = :utc

Twitter の REST API で得られる ツイートID や ユーザID を RDB に収めるときは bigint を使う

理由 ORDER BY で期待どおりの動作をしてくれないから*1*2。 Rails(Active Record)で bigint を使う Rails で予め用意している型に bigint はありません*3。したがって integer で定義した上で limit オプションを付与して明示的に bigint であることを指…

Rails の MySQL で Incorrect string value というエラーが出たとき

結論 文字コードの設定を見直す*1。 Rails では たとえば utf8mb4 の場合には、config/database.yml に明示的に encoding: utf8mb4 と書きましょう。 development: adapter: mysql2 host: YOUR_HOST encoding: utf8mb4 username: YOUR_USERNAME password: YO…

Rails (Active Record) で 外部制約(外部キー)を削除する

結論 remove_foreign_key を使えばいいです。 実例 class FooBarMigration< ActiveRecord::Migration[5.2] def change remove_foreign_key :users, :jobs end end 余談 ググったら外部制約のカラムそのものを削除する方法が多くヒットして大変でした*1。 *1:…

Rails のマイグレーションでエラーが出てハマったときに調べるところ

大原則 データベースを直接いじってはいけない。マイグレーション(ファイル)経由で変更する。

Rails で フォーム から submit された際に付与されるパラメータ「commit」を削除したい場合

結論 submit_tag にオプションで name: nil を付与する。 具体例 <%= submit_tag "foobar", name: nil %> form_for の場合はこんな感じになるかと思います*1。 <%= form_for @foo do |f| %> <%= f.submit '提出', name: nil %> 参考 *1:記述を一部省略

Rails の フォーム の パラメータ に付与される utf8=✓ を取り除く

結論 config/initializers/remove_utf8_enforcer_tag.rb みたいなファイルを作って、以下のように書きます*1。 module ActionView module Helpers module FormTagHelper def utf8_enforcer_tag ''.html_safe end end end end なぜ上記のようにするとよいのか…

Slim で .js.slim なファイルに JavaScript を書く方法

結論 以下のような感じで書きます。ファイル名は例えば foobar.js.slim みたいな感じです。 | (function() { | console.log('Hello, World!'); | console.log('Hello, foobar.js.slim!'); | }()); ……きつい*1。小規模のアプリでちょこちょこっと使うぐらいな…

Rails で digest認証 を行う際の before_action の指定

前提 Rails 5.2.0 です。 結論 before_action :digest_authenticate

Powered by はてなブログ