railsのserverが停止できなくなった時。 rails メモ⑤
railsのserverの停止方法は「control + c」ですが、
serverを起動したterminalを一度終了すると、「control + c」で停止できなくなります。
そんな時の解決策です。
terminalで、以下のコマンドを入力して実行してください。
すると次のように出てきます。
なにをしたのかというと、ps aux | grep rails というコマンドで、
起動しているプロセスの中から「rails」を検索しました。
つまり、今起動しているrails serverのプロセスを発見したということになります。
ここで出力結果の、一番左の四桁の数字1183に注目してください。
この「1183」がrails serverのプロセス番号です。(状態によって数字は変わります)
このプロセス番号を、キル(強制停止)することでrails serverを停止することができます。
では、この1183をキルしましょう。
これで停止完了です。
【簡単・簡潔】kaminariの書き方 Railsメモ④
kaminariというgemの使い方を解説します。
初心者が調べながら作成しました。
目次
- kaminari完成図
- gemインストール
- controllerの書き方
- Viewの書き方(完成!)
1 kaminari完成図
写真のように、5ユーザーごとにページネーションのリンクを作成できています。
2 gemインストール
Gemfileを開きます。
ファイル内の適当なところにkaminariを書きます。
Gemfile
gem 'kaminari'
次にターミナルで下記を実行します。
terminal
bundle install
これでkaminariのインストールは完了です。
また、サーバーを起動していた場合はここで再起動しておきます。
3 controllerの書き方
一覧に使うcontrollerを開きます。
以下のようにアクションを書きます。
users_controller
User.page(params[:page])
kaminariをインストールしたことでpageメソッドが使えます。
自動的にデータベースから◯◯ページ目を取得してくれます。
.per(5)
また、.per(5)を最後につけることで5件取得という指定ができます。
4 Viewの書き方(完成!)
次はViewの書き方です。ここまできたら間もなく完成です。
3行目と7行目をみてください
3行: <%= page_entries_info @users %>
全部で何件あり、今何件を表示しているかを確認できるよう出力されます。
7行: <%= paginate @users %>
こちらでページを分けたリンクを生成します。
また、4,5,6行目はeachメソッドでUserを出力しています。
4,5,6行目を書いたことで、perメソッドで指定した5件ずつがeachで出力されるようになります。
完成図
以上がkaminariの使い方です。
「 cannot load such file -- bcryptというエラーに対する解決策」 Railsメモ③
cannot load such file -- bcrypt
原因はわかりませんが、この場合はrails serverを再起動すると直ります。
gem bcryptをbundle installした後に発生する時がたまにあります。
「rails generateができない時」Rails メモ②
「rails generateができない時」rails メモ①
$ spring stop
$ rails generate で解決。
参考記事
http://app.road.jp.net/?p=1679
progate中級編 Ruby on Rails 暗記すべきもの一覧 Railsメモ①
progate中級編 Ruby on rails メモ
暗記したほうがいいもの
-----------------------------------------------------------------------------------------------------
progateのRuby on Railsを学習していく中で、
どちらかというと理解して書いていくというよりは、
暗記しておく方がいいのでは!と思ったものをメモしました。
初心者の目線からの暗記すべき重要項目なので、
まだRailsを始めたての方には参考になるかと思います。
中級編を一周した後に確認してみるとすごく良いと思います。
赤字のコードが暗記するのが良いと思うコードです。
-----------------------------------------------------------------------------------------------------
・ストロングパラメータ。
paramas.require(:note).permit(:title, :content)
#指定したパラメーターにのみ入力できる。
[controller]
privte #このクラス内でのみ有効
set_params
paramas.require(:note).permit(:title, :content)
end
-----------------------------------------------------------------------------------------------------
・エラーメッセージを表示しよう。
@note.erros.any?
#オブジェクトが一つでもあればtrueを返す。なければfalseを返す。
[view]
<% if @note.erros.any? %>
<% end %>
-----------------------------------------------------------------------------------------------------
・エラーメッセージを表示しよう。
@note.errors.full_messages.
#validatesでエラーが発生した場合に、エラーメッセージを配列で取得してviewに出力する。
[view]
<% @note.errors.full_messages.each do |message| %>
<%= messages %>
<% end %>
-----------------------------------------------------------------------------------------------------
・パーシャルを作ろう。
form_for(@note)
#form_forタグの引数(@note)は、データベースに保存されているか否かで送信先が変わる。
[view]
<%= form_for(@note) do |f| %>
#@noteが保存されていれば、updateアクションへ。そうでなければcreateアクションへ。
-----------------------------------------------------------------------------------------------------