Translate

BTemplates.com

Powered by Blogger.

ラベル heroku の投稿を表示しています。 すべての投稿を表示
ラベル heroku の投稿を表示しています。 すべての投稿を表示

2018年6月29日金曜日

2018-06-28、29 到達点メモ


Gitにコミットしたら、ユーザー名が実名だったので
よく使っているハンドルネームに変えたい場合の手法
*コミットしたデータを変えるわけではないことに注意

以下の内容をシェルスクリプトではなく
きちんと入力する必要がある

git config --global user.name "yourname"
git config --global user.email yourname@yourname.yourname

参考サイト
Gitでユーザを確認・変更する手順

コミットしたすぐのものを見たい
git diff HEAD^

参考サイト
忘れやすい人のための git diff チートシート

rails db:migrateでDBファイルを作るとのことだが
rake db:migrateじゃなかったけ?
と思ったら、案の定Rails5以降はrails db:migrateになったとのこと
微妙にrakeって何なんだろうなと思っていたが、
どうやらUnixのmakeのruby版から来ているらしい
ナルホドナー

参考サイト
コラム 2.1. Rake

UserIDを設定する際に
Users must exist
というエラー文が出るので何が原因なんだろうと調べていたら
単にbelongs_to :users
と複数形にしていただけだった。
正しくは、belongs_to :userである

リスト 2.17: Userモデルに存在性のバリデーションを追加する
に挑戦したら以下のようなエラーが出た

undefined local variable or method `email' for User

当時の回答
user.rb
class User < ApplicationRecord
    has_many :microposts
    validates name, presence: true
    validates email, presence: true
end

emailは定義されているし
validates email, presence: trueを消すと
通るし、validates name, presence: trueを消すと逆に通らないけど
何でなんだろうなと調べたところ

user.rb
class User < ApplicationRecord
    has_many :microposts
    validates :name, presence: true
    validates :email, presence: true
end

この部分が無かったのが原因でした。
これがないと変数あつかいになるとのこと
言われてみれば確かにそうでしたね……

しかし、nameが通った理由はいまいちわからない……
参考サイト
Railsチュートリアル exerciseに関して

しかし、我ながらまずいなこれは……。

第二章終了。

……なんか普通にHerokuで動いたんですがそれは
いや、いい事なんですが前回は何で動かなかったんだろうか?
考えられる理由は二つ
本命:heroku run rails db:migrate を使わなかったため。
理由は、これをやる前usersのページにアクセスしたら
エラーになったため。
対抗:bundle install --without production を使わなかったため
理由は、このコマンドが本番に関係するコマンドの為
 --without production を省いてコマンド打った可能性がある為

以前の記事を見る限りだと、どっちもやっていないように見える。
追記と書き直しが必要そうですね……

次回は第三章から

Udemyでnode.jsの勉強しているのだが
Syncって日本語に訳すと同期という意味になる
非同期処理とかでSyncがやたらでてくるのはそれか……。

以下はkotlinでの話

classの取得する方法を良く忘れるので再度メモ
HogehogeActivity::class.java

参考サイト
KotlinでIntentを用いた画面遷移


class HogehogePreferenceActivity : PreferenceActivity {
//(以下略)

上記のように書くとPreferenceActivityの部分で下記のようなエラー文が出ます

This type has a constructor and this must be initialized here

対処方法を簡単に述べると以下のようにします
class HogehogePreferenceActivity : PreferenceActivity() {
//(以下略)

参考サイト
This type has a constructor and must be initialized here - Kotlin

プリファレンスの書き方を忘れたので
以下のサイトを参考にして書いた

参考サイト

今日はここまで

2017年9月4日月曜日

2017-09-03 到達点メモ



remoteurlを調べたい場合は
git remote -vをする
割とよく忘れるので注意

参考サイト


git addすることをインデックスに登録するという
git add . しても予め含まれないようにするには
.gitignoreに設定を書けばよい。

既に過去にコミットしたファイルを含めないようにするには
以下のようにコマンドを打てばよい
git rm --cached ファイル名

なお --cached を付けないと
ファイルごと削除されるらしい。
なんかこのコマンドを試したとき
いつの間にかこれを指定したファイルが消えていたが
抜けたたんだろうか?もしくは操作ミス?
もしかするとコミット後にやったコマンドだから
コミットから削除するために消えたのかも。

git add . した後にきちんとインデックスに登録した内容が
除外されているか確認するには
git status とコマンドを打てばよい

自分はよくシェルコマンドを使って入力するので
do*.shって.gitigoneに書いておくと
良く使うコマンドを別けて書きたい時
に自動的にインデックスに含まれないようになるので便利

参考サイト


チュートリアルにherokuのコマンドでログを表示するコマンドを調べなさい
という演習があったので(正解はおそらくlogs)
調べてみたらdrainsというコマンドがあったので
ちょっと調べてみる。
どうも外部のサーバーにログを転送する機能らしい。
メイン処理はherokuにやらせるけど、監視だけは別のサーバーでやりたい時とかに
つかうんだろうか?

参考サイト


新しくアプリケーションを作るところから始めるのはちょっと面倒だったので
一からつくりなおして、今まで使っているgitのurlにpushしたら
コンフリクトを起こした。
本来ならきちんと調べたほうがいいんだろうが、そこは主題じゃないので
コンフリクトを起こしたフォルダを全部消し、git cloneでデータを持ってきなおした。
複数のpush先を持っている場合、データ内容が同じでも
remoteのurlは保持していないので、それぞれからremoteのurlを持ってくる必要がある
なお、クローンした場合は、クローンした先のremoteのurlは登録される
herokuに関しては以下のようにとってきた
heroku git:remote --app heroku_app_name
なお、remote_urlは特にインデックスに加えたり、コミットする必要はない

参考サイト

postgresの設定で躓いた。
調べてみたらMySQLでもクレジットカード登録すれば
5MBまでは無料で作れるらしい。

Railsに疲れたので後は別なことをやった。
というか本来の目的は、仕様書を比較的に楽に管理するためのツールづくりだから
あんましRailsそのものをやりたいわけじゃないんだよなぁ。
具体的にはVoiceTimerのGooglePlay用のスクリーンショットの作成をやった。
割と何書けばいいか迷ったが、いつの間にかアプリの一覧表示でも
スクリーンショットが表示されるようになったので結構馬鹿にできないと思う。

あと、今のアイコンって時計というのはわかるんだけど
声との関連性がわかりにくいのでそこをどうしようか考え中
最初は、Inkscape(SVG作成ソフト)のテキストで
VoiceTimerって入れるつもりだったのですが
AndroidStudioでSVG取り込む際に、
エラーになってテキストの部分が取り込めず
どうにもならなかった。

しょうがないので以下のように文字を使わない方向で試行錯誤した結果がこれです。

拡大してみる分にはあまり気にはならないのだけど
縮小すると何の画像かわかりにくくなるので
まだ調整がいりそう。

あと、ちょっとapkファイルを小さくできないかと思って調べてみたのですが
軽く調べた感じだと、zipalign、ProGuard、shrinkResources、IconFont
あたりでしょうか。
zipalignは使ってみたのですが、容量に差はありませんでした。
また、ProGuardは既に書かれていました。
shrinkResourcesは使ってみたらエラーが出まして
ザっとしか調べていないのですが、stackoverflowerの回答によると
gradleのバージョンを2.1.3に下げると動くらしい?
そして、今回のアプリに限って言えば、画像は全部ベクター画像なので
IconFontを使う必要がありませんでした。

とりあえず、今日はこんな感じでした。



参考サイト
年末の大掃除、アプリの容量を削減するためのチェックリスト
\build\intermediates\res\resources-anzhi-debug-stripped.ap_' specified for property 'resourceFile' does not exist

2017年9月2日土曜日

Railsチュートリアル(第四版)に基づいたRails5.0.3+Cloud9でのHerokuへの接続方法


*2017/9/3追記
飽くまで、herokuにデプロイするのが目的です。
その為、databese.ymlの設定は
SQLite3のままになっております。
静的表示をするぐらいなら問題ありませんが、
この状態のままではサーバーを使った動作を行うことは出来ませんので
適切にコードを書き換えてください

Ruby on Rails チュートリアル(第四版)の1.5.2 Herokuにデプロイする (1)
ができなくて、色々試してネットの情報を色々見ました。
見た感想としては私と同じようにHerokuにデプロイできなかった人は
多かったように見えました。

色々試してみたところ、rails new で作ったフォルダの中で
git init や heroku createなどをしてgit push heroku masterをすれば
herokuにプッシュできることを確認しました。

これが本来の手順として正しいのかはわかりませんが
探したときにあまりもこれといった解決方法が見つからなかったので
のせておきます。


以下が作業手順となります

gem install rails -v 5.0.3
rails new hello_app
cd hello_app

gemfileの内容をリンク先のリスト1.4.4の内容に書き換え

application_controller.rbに以下のメソッドを追加
  def hello
    render html: "hello"
  end

config/routes.rbに以下の内容を追加

root "application#hello"

bundle install
この際に以下のようなエラーが出るかもしれませんが
私は面倒だったので、Gemfile.lockを消して解決しました。
Bundler could not find compatible versions for gem "activesupport":

gitの処理をする前に、

rails server -b $IP -p $PORT

を入力してきちんと起動するか確かめてください。
此処でエラーが出ると、この後pushしてもリジェクトされます。


あとは以下のコマンドを入力して
適切な処理をしてください。
なお、:~/workspace/hello_app の場所で
コマンドを入力するようにしてください

git init
git add .
git commit -m "init"
heroku login
heroku keys:add
heroku create
git push heroku master

これで恐らく通るはずです。
上手くいけば、以下のようなメッセージが出るはずです
remote: -----> Launching...
remote:        Released v5
remote:        https://□□□-△△△-××××.herokuapp.com/ deployed to Heroku
remote: 
remote: Verifying deploy... done.
To https://git.heroku.com/□□□-△△△-××××.git
 * [new branch]      master -> master

では、早速開いてみてください。
具体的にはReleased v5の下にあるURLです

ページを開いた際に画面に
Method Not Allowed
と表示される人はおそらく開いているURLが間違っています
間違っているURLはおそらく最後に.gitが付いているはずです。

正しいURLを開けば
hello
と表示されるはずです。

以上となります。
構築お疲れさまでした。

参考サイト
Ruby on Rails チュートリアル(第四版)
[Railsチュートリアル第1章] Herokuにデプロイ出来ない(一番下の回答)
HerokuにデプロイするとMethod Not Allowedが出力される