0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rails学習 3日目

0
Posted at

Ruby on Rails5速習実践ガイド chapter6

6-2-1 「ルート」を構成する5つの要素

ルーティングとはリクエストをどのアクションで実行するかを指定するもの。ルーティングを構成するのに必要な物は以下である

要素の名前 要素の内容の例 説明
HTTPメソッド GET,POST,PATCH,PUT,DELETE 情報の送信、取得の方法を表す物
URLパターン /tasks、/tasks/:idなど URLそのもの
URLパターンの名前 new_task、tasksなど 定義したURLパターンごとに一意な名前をつけたもの
コントローラー tasks(Taskcontroller) 呼びたいアクションのコントローラークラスを指定する
アクション index 呼びたいアクションを指定する

6-2-5 resourcesでCRUDのルート一式を定義する

前の説明でresourcesについて説明した今回はそれの応用編である。

/config/routes.rb
resouces :tasks

このように記述するとtaskルーティングの7つのHTTPメソッドが自動的に1つにまとまる。ということを書いた。それではそれ以外のルーティングを書きたいときはどうすれば良いのか?プラスで付け加えたい時はcollectionを使う

/config/routes.rb
resouces :tasks do
  collection do
    get 'export'
  end
end

このようにcollectionのなかにHTTPメソッドとアクション名を書くことで自動的にルーティングが機能するようになる。

6-3 国際化

ja.ymlファイルなんかによりプログラミングでも日本語対応させてコードを書くことが可能である。利用者もまた日本語に対応したサービスにはなるが外国のかたが使う機会があるかもしれない。利用者によって言語を変える必要も出てくる。そんな時に使うのがI18n.localeである。I18nは一つのプログラムで複数の国向けに使えるようにするものである。

class ApplicationController < ActionController::Base
  before_action :set_locale


private

  def set_locate
    I18n.locale = current_user&.locale || :ja #ログインしていなければ日本語
  end
end

コントローラに定義することで使えるようになる

6-6 Railsのログ

ログとは自分が何か処理をしたときの履歴である。もしエラーやバグがあればログを遡り何の操作が正しくなかったかなどをみることができる。
例えばタスク作成時に保存したタスクの情報をログ出力させたい時は、以下のようにする。

app/controllers/tasks_controller.rb
   def create

     if @task.save
       logger.debug "task: #{@task.attributes.inspect}"
       redirect_to @task, notice: "タスク「#{@task.name}」を登録しました"
     else

inspectはわかりやすく表示してくれるもの。

ただログに残ってはいけない個人情報なんかもある、その時にはログに映らないようにしなければならない。

config/initializers/filter_parameter_logging.rb
Rails.application.config.filter_parameter +=[:password]

ここで指定されたパラメータの値は、ログ上では[FILTERED]と表示される。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?