8/19-Rails調べ

■index

  • 資料をざっとみた印象
  • zendesk
  • rspecのlet!構文
  • ログイン機能の実装
  • rakefile
  • .rst
  • railtie
  • api_only=true
  • rubocops
  • activesupport::concern
  • robots.txt
  • .rake
  • jbuilder


■設計書を見た印象

管理者/一般
ログイン➡検索、登録、一覧、削除、設定変更、バリデーション、
といった一般的なWebアプリの構成
ダウンロードだけ処理分からないが、一般的だと思う。
持たせてるデータ内容(DB定義=ActiveRecord,DBのスキーマ)だけ。
railsで権限(ロールの付与)ってどうやって実装できるんだ?
➡application_policy

Userではなく、Usableなんだろ?
sessionはzendeskかそれ以外かみたいな?

■zendesk

は企業用FAQサービスで、SSOでセッションを見るだけしている。


■rspecでのlet(){}構文について

# インスタンス変数を使う場合
    @user = User.new(name: 'Taro'email: 'taro@example.com')
  # letを使う場合
  let(:user) { User.new(name: 'Taro'email: 'taro@example.com') }

インスタンスの生成での違いで、実務上ははletを使う

ログイン機能の実装

  • Usersモデル(name/email/password_digest)
  • ハッシュ化する処理(bcrypt)
  • セッション管理の基盤作成(session controller)
  • ルーティング
  • view

rakefile

設定ファイルに記述されている作業を上から順に実行してくれるもの。
特徴は下記の、
  • Rubyで記述ができる
  • 言語内DSLを採用
  • Rakefileというファイルに一連の処理を定義する 

.rst

  • 元々は Python のソースコードに記述された pydoc コメントを整形するツールとして開発されました。
  • 現在では Python ドキュメントに限らず、あらゆるドキュメント作成ツールとしても利用されています。
  • reStructuredText という軽量マークアップ言語を使用します。拡張子は *.rst です。
latexとかpdfとかのフォーマット用の拡張子である。

railtie

railsアプリケーションの初期化プロセス段階で呼ばれるファイルたち

2.1 railties/lib/rails/all.rb

このファイルはRailsのすべてのフレームワークをrequireする役目を担当します。
require "rails"

%w(
  active_record/railtie
  action_controller/railtie
  action_view/railtie
  action_mailer/railtie
  active_job/railtie
  action_cable/engine
  active_storage/engine
  rails/test_unit/railtie
  sprockets/railtie
).each do |railtie|
  begin
    require railtie
  rescue LoadError
  end
end
ここでRailsのすべてのフレームワークが読み込まれ、アプリケーションから利用できるようになります。

api_only = true

➡既存アプリをAPI専用に変更する目的

3.2 既存アプリケーションを変更する

既存のアプリケーションをAPI専用に変えるには、次の手順をお読みください。
config/application.rbApplicationクラス定義の冒頭に、次を追加します。
config.api_only = true
developmentモードでのエラー発生時にレスポンスで使う形式を設定するには、config/environments/development.rbファイルでconfig.debug_exception_response_formatを設定します。
値を:defaultにすると、HTMLページにデバッグ情報を表示します。

rubocops

RuboCopとは

Rubyの静的コード解析を実行するgemです。難しく聞こえますが、要はRuboCopが.rbファイルに記述してあるコードを検査し、ここのコードは長すぎるね。とか、インデント入れたほうがいいよ。とかメソッド名変えようか。とかをコマンド1つでターミナルに吐き出しててくれます。(HTML、CSS、またはそれらの中の埋め込みrubyは解析してくれません。)

activesupport::concern

Railsにおいて共通した処理を切り出すために
ActiveSupport::Concern がよく使われています。
robots.txtは、Googlebotを始めとしたクローラーに対して、特定のディレクトリやページへのクロールを制御するテキストファイルです。

robots.txtの用途は大きく分けて以下の2つあります。

(1) 特定のクローラーが指定したディレクトリ・URLにクロールしないようにする。

(2) クローラーにsitemap.xmlの場所を教えてクロールの促進をする。

 上記の2つを行うことで、余計なページがクロールされるのを防ぎ、サイト内のクロール効率を向上させるのがrobots.txtを活用する目的です。


.rake

rakeの実行ファイル、ansibleみたいに、タスクに分割してオペレーションをrubyで記述するファイル

jbuilder

APIサーバon rails

describled_class
Rspecのモデル指定方法、相対的な指定
entity_class ruby
JPAを使用する場合,アプリケーションではデータの入れ物となるクラスを作成します。これをエンティティクラスといいます。通常,エンティティクラスを作成する際には,エンティティクラスの一つのオブジェクトがデータベースのテーブルの一行に対応するように作成します。エンティティクラスは,普通のJavaクラス(POJO)で作成します。特別なインタフェースをインプリメントする必要はありません。
ORMの概念体を指すのね。
Next Post Previous Post
No Comment
Add Comment
comment url