- 1. Rails と Vue の共存
- 2. AWSへのRailsアプリのデプロイ その2
- 3. Rubyの『クラス』関係の問題を集めてみて解いてみた。
- 4. [rails]Haml 投稿フォームについて
- 5. [rails]hamlでアイコンを表示させたい!
- 6. database.ymlファイルの主な役割を2つ述べてください
- 7. 【Rails】gemのgoogle-cloud-visionでv1.0が出たので対応してみた
- 8. 質問の仕方について
- 9. 【Error】編集後に画面遷移しない事象の解消法
- 10. form_with scope
- 11. ターミナルでよく使うコマンド集(ファイル操作編)
- 12. あともう少し…MySQLサービス起動後、Railsサーバが起動しない3
- 13. has_oneについてメモ
- 14. HerokuにBugsnagを導入
- 15. 初心者向けRailsでブログを作ってみるチュートリアルその1
- 16. 道のりは長い…( ´Д`)y━・~~ MySQLが起動しない事象への対応
- 17. ターミナルでよく使うコマンド集(Rails編)
- 18. macOSをバージョンアップしたらrails s出来なくなった
- 19. capistranoで構築した環境でassetsの中身を1から作り直したい
- 20. Railsアプリを作成してGitHubにSSHでPush
Rails と Vue の共存
Rails と Vue の共存をしたい。
できれば以前のコードを活かしたい。
いきなりSPAにするにはサンクコストが大きくて、踏ん切りがつかない。## 参考
2018年くらいに書かれたものが多い。Railsの遺産を残しながらVueの単一コンポーントの利点を使いたい、しかしSPAには振り切りきれない。– Vue.jsとRailsの最適な融合を考える
– https://tech.medpeer.co.jp/entry/2018/02/26/080000
– 実際のサービスをRails+Vue.js(Single File Components)を用いてSPAへリファクタリングした話
– http://techblog.housmart.co.jp/2018/08/06/vuejs-single-file-components-in-rails/
– SPAじゃないVue.js〜Railsとともに〜
– https://qiita.com/yuyasat/items/b8203a134409b053f1f5### webpack
– RailsでV
AWSへのRailsアプリのデプロイ その2
## はじめに
今回は以下の記事の続きです。アプリのデプロイまで行っていきます。
AWSへのRailsアプリのデプロイ その1
## データベースのインストール
以下のコマンドでバージョン5.6をインストールします。
バージョンについては、各々の環境ごとに適当なものを選択してください。“`
sudo yum -y install mysql56-server mysql56-devel mysql56
“`
さっそくmysqlを立ち上げます。“`
sudo service mysqld start
“`
mysqlのrootユーザーのパスワードを設定します。“`
sudo /usr/libexec/mysql56/mysqladmin -u root password ‘ここにパスワードを入力’
“`
パスワードが設定できたか確認します。“`
mysql -u root -p
“`
パスワードの入力を促されるため、先ほど設定
Rubyの『クラス』関係の問題を集めてみて解いてみた。
#Rubyのクラスが分からない
チェリー本を読んでいざアウトプットしていこうと思ったものの、自分でプログラムを作るとなると中々解けずに難しい。。。そんな僕と同じ悩みを抱えている方のために**基礎問題**を集めてみました。
基礎問題と言えど正直、曖昧な知識のままこの問題を解いていくと分からないことがあります。
出来れば答えを見ずに進めていくのが良いと思いますが、考えてもどうしても分からない場合は記事の下の方に回答を書いておきますので参考にして下さい。
そして、回答を読んでも分からないと言うことが僕自身ありましたので、分からなかった点まで記載していきます。
#問題(3問)
##①クラス変数とクラスメソッドについて
“`sample.rb
class Car
def self.run
@@count += 1
enddef count
@@count
end
endcar1 = Car.new
car1.runcar2 = Car.new
car2.run
car1.runputs Car.count
“`[こちらの記事の
[rails]Haml 投稿フォームについて
##送信フォーム(hamlでの表示方法)
“`haml
%input.class-name__text{tpe: “text”}
%input.class-name__submit{type: “submit” ,value: “POST”}
1.テキストを入れるフォーム
2.送信ボタン
“`###▼ボタンのオプションの解説
[クイックリファレンス](http://www.htmq.com/html5/input_type_submit.shtml)##リンクをつける
“`haml
= link_to ‘#’ do
%i.fa.fa-trash
“`##リンクの表示を変えて、下線などを消す
“`sass
a {
text-decoration:none;
}
“`
[rails]hamlでアイコンを表示させたい!
“`haml:haml
%i.fa.fa-trash
“`下記、アイコンについて参考になる便利サイトです。
▼回転させたり、他の機能も使いたい!
[【Rails】font-awesome-railsの使い方を徹底解説!](https://pikawaka.com/rails/font_awesome_rails)▼アイコンを選びたい
[Font Awesome](https://fontawesome.com/v4.7.0/icons/)▼色を指定したい
[fontawesomeの色指定!]
(https://pix524.net/fontawesome-color/)
database.ymlファイルの主な役割を2つ述べてください
使い方はわかるけど、言葉で説明する際に
整理しておくシリーズ。・rake db:createのコマンドを実行した時に作成されるデータベースの名称を指定する。
・RailsアプリケーションがSQLサーバーにアクセスするときのソケットファイルの位置を指定する
【Rails】gemのgoogle-cloud-visionでv1.0が出たので対応してみた
[以前に書いた記事](https://qiita.com/west2538/items/e94db445e22e6151718d)でコードを書き換える必要があったので対応してみました。
gem `google-cloud-vision`をv0.x系からv1.0.0にアップデートしたら要注意です。
基本的に
**Migrating to google-cloud-vision 1.0**
https://github.com/googleapis/google-cloud-ruby/blob/master/google-cloud-vision/MIGRATING.mdに書いてあるとおりなのですが`#safe_search_detection`については[こちら](https://googleapis.dev/ruby/google-cloud-vision-v1/latest/Google/Cloud/Vision/V1/ImageAnnotator/Client.html#safe_search_detection-instance_method)のほうがわかりやすかったで
質問の仕方について
基礎的な事だが、せっかくスクールであった
質問の型なので、メモ書きしておきます。■解決したいこと
エラー文や、今起こっているトラブルを端的に書く■自力で調べた内容
検索エンジンを用いた際の検索ワードについてや読んだ記事のリンクを書く■仮説と検証作業の結果
検索して得た情報から立てた仮説と、その検証作業による結果を書く
【Error】編集後に画面遷移しない事象の解消法
# 概要
タスクの編集画面を実装し、確認のため編集を行い、ボタンを押下したのですが画面が変わらず。。。。:confounded:結果としては、「redirect_to」していなかった:sweat_smile:ということでしたが、エラー解決するまでの経緯を備忘録として残します!
# 確認方法
【前提】
編集画面で登録ボタンを押した後は、ボタンは押下できない状況にあった。
画面遷移もされない。
①MySQLに編集データが保存されているかを確認
→
変更されている:ok_hand:②エラー画面が出ていないのであれば、ターミナルにエラー情報が記入されているのではないかを確認
“`Terminal:terminal
No template found for TasksController#update, rendering head :no_content
Completed 204 No Content in 139ms (ActiveRecord: 3.4ms)
“`あった:rolling_eyes:
**No template**って記載されてた!!③コントローラ
form_with scope
#form_withのscopeについて
こんなフォームがあったけどscopeってどんな意味だってなった
“`ruby.rb
<%= form_with scope: :session, url: sessions_path do |f| %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>
“`とりあえず検証ツールを見てみる
なるほどこんな働きなわけね。“`html
“`
##つまりscopeオプションはどんなはたらき?
spopeオブジェクトに私た値がname値のプレフィックス(接頭語)になっている
name = “session[name]”
という形でパラメータが送信されている。ってこと
###どうやって受け取る?
パラメータのプレフィックスにsessionがついた
ターミナルでよく使うコマンド集(ファイル操作編)
#
“`:ターミナル
# カレントディレクトリのパスを表示する
$ pwd表示例→/Users/ユーザ名/Desktop/sample
→print working directoryの略# 今いるディレクトリの直下にあるファイルやフォルダの名前の一覧を表示します
$ ls→listの略
#ファイルのパーミッションの確認
$ ls -l#移動したい時に使う
$ cd ファイル名change directoryの略。
#ホームディレクトリに移動する
$ cd ~/#一つ上の階層のファイルに移動する
$ cd ..
“`###<移動の注意点>
“`:ターミナル
#相対パス
$ cd projects#絶対パス
$ cd ~/projects“`
相対パスはフォルダ名(ファイル名)から初めて良い
絶対パスは/から始めます
あともう少し…MySQLサービス起動後、Railsサーバが起動しない3
### 発生した背景
MySQLサービスが復旧したところで、Railsを起動すると以下のエラーが発生した。“`
/Users/ichikawadaisuke/projects/krown/vendor/ruby/2.5.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require’: dlopen(/Users/ichikawadaisuke/projects/krown/vendor/ruby/2.5.0/gems/mysql2-0.5.2/lib/mysql2/mysql2.bundle, 9): Library not loaded: /usr/local/opt/mysql/lib/libmysqlclient.21.dylib (LoadError)
Referenced from: /Users/ichikawadaisuke/projects/krown/vendor/rub
has_oneについてメモ
#has_oneとbelongs_toの関係について
一対一の関係において外部キーを記述する方にはbelongs_toを用い、
外部キーを置かない方にはhas_oneとして関係性を構築する。“`ruby:user.rb
has_one :destination
“`“`ruby:destinaton.rb
belongs_to :user
“`
HerokuにBugsnagを導入
Heroku × Railsです。
## アドオンを追加→APIキーを取得
ダッシュボードから操作する方法と、コマンドラインから操作する方法があります。
### ダッシュボードから操作する場合
– Herokuのダッシュボードにアクセス
– Resourcesタブを開く
– Add-onsの下の検索窓に’Bugsnag’と入力
– Provisionをクリック
– Settingsタブを開く
– Reveal Config Varsをクリックし、BugsnagのAPIキーを確認する### コマンドラインから操作
Heroku CLIがインストールされている状態で以下のコマンドを叩く“`zsh
$ heroku addons:create bugsnag
$ heroku config:get BUGSNAG_API_KEY
70d9b0852a968b1d0d0e329b5507f287 #APIキー
“`## アプリケーション側の設定
“`rb:Gemfile
gem ‘bugsnag’
“`
“`zsh
$ bundle install
$ rails ge
初心者向けRailsでブログを作ってみるチュートリアルその1
# これはなに?
[初心者向けRailsでブログを作ってみるチュートリアルその0](https://qiita.com/zako-pro/items/f03de3b0f463cc5b7ea3) の続きです。今回はブログサービスを作ります。
では、ブログサービスの機能を分解して考えてみましょう
実際のブログサービスにはいくつか機能がありますが、今回はブログサービスと呼ぶために必要なミニマムの機能を開発しましょう。# 機能一覧
## 訪問者用機能
– 記事閲覧機能
– コメント機能## 管理機能
– 管理者ログイン機能
– 記事投稿機能この中で、次のステップから最初に最低限ブログらしいものに必要な「記事閲覧機能」を作っていこうと思います。
# サイトマップ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645608/55585e0c-6866-9307-d440-c360a43b8290.png)# ワイヤーフレーム
今回は最初に作る記事閲覧機能に含まれる2画面につい
道のりは長い…( ´Д`)y━・~~ MySQLが起動しない事象への対応
Railsを起動するため、Gem、bundleの再設定を行いました。ようやくアプリケーションを起動することができたのですが、アプリケーションにアクセスするとエラー出力され、アプリが動きません。
非常に道のりが長いですが、1つ1つ対応を進めていきます。エラー内容:
“`
* Listening on tcp://localhost:3000
Use Ctrl-C to stop
Started GET “/” for ::1 at 2020-06-02 11:31:07 +0900Mysql2::Error::ConnectionError (Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (38)):
(省略)
“`①そもそもサービスが起動していなかった。(mysql.server statusで確認)
②ログを確認すると、プロセスを起動する際にファイルのオープンに失敗している
(ichikawadaisukenoMacBook-Air.local.err )“`
2
ターミナルでよく使うコマンド集(Rails編)
#バージョンを確認するコマンド
“`:ターミナル
#Rubyのバージョンを確認するコマンド
ruby –version#Railsのバージョンを確認するコマンド
rails –version#RubyGemsのバージョンを確認するコマンド
gem -v
“`#rails関連で使うコマンド
“`:ターミナル
#railsのサーバの起動
rails s#railsサーバの終了
control + C#コントローラの作成
rails g controller name[option]#railsアプリの作成
rails new アプリケーション名#DBとmodelの作成
rails g model テーブル名 カラム:データ型 カラム:データ型#railsに直接値を代入したり操作する際に使用
rails console#railsコンソールの起動
rails c#railsコンソールの終了
exit
“`#bundle関連
“`:ターミナル
#gemfileを元にgemのinstallを行う
bundle install#ge
macOSをバージョンアップしたらrails s出来なくなった
#問題
① macOS Catalina のバージョンを10.15.4にアップデートする
② 現在制作途中のアプリケーションのディレクトリにてrails sする
③ 以下のようなエラーが出る
“`terminal
Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
“`#解決
https://nodejs.org/ja/download/current/
上記のサイトにて、最新版のNode.jsをインストールするか
ターミナルで、homebrewを用いてインストールを行う
“`terminal
% brew install nodejs
“`すると、無事rails sでローカルサーバーを起動できた。
capistranoで構築した環境でassetsの中身を1から作り直したい
## なぜそんなことをしたくなったのか
capistranoのassets:precompileが走っている時にEC2がメモリ不足に陥り、インスタンスを再起動させた結果、deployが中途半端なところで終わってしまいました。
もし中途半端なコンパイル結果をもとにWebサーバーが動いて実行時エラーなんて起きたときには目も当てられないので、なんとかまっさらな状態に戻そうとしてあれこれしました。## バージョン情報
“`
rails (5.2.4.2)
capistrano (3.11.0)
sprockets (3.7.2)
sprockets-rails (3.2.1)
“`## 前提条件
current_pathはこのパスとする
– /var/www/app_name/current
shared_pathはこのパスとする
– /var/www/app_name/shared
## 先に結論
結論から言うと、やるべきことはこれです。
1. /var/www/app_name/shared/public/assets の中身を消す
2. /var/www/a
Railsアプリを作成してGitHubにSSHでPush
VPSのセットアップしてcapistranoでデプロイする流れで、Railsアプリを作成する必要があったので簡単にまとめます。情報量の関係上、Rails5です。安全に行きたいので。
## 環境
Rails 5.2.2
Ruby 2.4.1
MySQL 5.7## You’re on Railsを表示
“`zsh
$ mkdir sample_app
$ cd sample_app
$ touch Dockerfile docker-compose.yml Gemfile Gemfile.lock
“`
“`Dockerfile:Dockerfile
FROM ruby:2.4.1RUN apt-get update -qq && \
apt-get install -y build-essential \
libpq-dev \
nodejsRUN mkdir /app_name
ENV APP_ROOT /app_name
WORKDIR $APP_ROOTCOPY ./Gemfile $APP_ROOT