あれやこれやの日々

幅広いエンジニアリング情報を掲載

railsのモデルにカラムを追加する方法

2020年04月13日 | ブログ
Railsを使っていると稀にカラムを追加したくなることあります。
そんな時は大抵やり方を忘れているもの。
そこでメモとしてブログに書いておけば安心かな・・・

いつも悩むのがテーブル名。
本来はモデル名なので単数形のはずが、なぜか複数形で書く仕様。
どう考えても納得いかないので覚えない訳で・・・

さて、手順は以下の通り。(シンプルなのにね・・・)

1.マイグレーションファイルの作成
既存のモデル:sampleに新たにテキスト型のカラムstatusを追加する場合

>rails g migration AddStatusToSamples status:string

ここで注意するのはテーブル名に相当するモデル名をコントローラー名に
する点です。
(※モデル名:sample のコントローラ名はsamplesにするルールより)

この様に書くことでrailsはadd_status_to_samplesと解釈する様です。
この処理により生成されたファイルの中身は、

class AddStatusToSamples
def change
add_column :samples, :status, :string

end

end

となります。

2.カラム追加を実行
ターミナルから以下を実行。

>rails db:migrate

以上で完了です。



Rubyで warning: calling URI.open via Kernel#open is deprecated,・・・が出る対策

2020年04月02日 | ブログ
最近Rubyを使って、WEBスクレイピングを始めてみたのですが、
何やら気になるメッセージが出るので調べてみました。

ワーニングメッセージ:
warning: calling URI.open via Kernel#open is deprecated, call URI.open directly or use URI#open

さて、このWarningを出しているモジュールはと言うと
open(url)メソッドです。

実際のコードは以下の通り、良くあるサンプル程度のもの。

#coding: utf-8
open(url) do |file|
file.each_line do |line|
# ここに処理を書く
end

end


このopen()メソッドは、Ver2.7辺りで、今回のWarningを出す様になったとか。
推奨メソッドはURI.open()とのこと。

早速、URI.open()に変更してみると、確かに出なくなりました。

取り合えず、解決!   ・・・以上