-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
みんなのブログを非Vue化(HTMLに変更) #7651
みんなのブログを非Vue化(HTMLに変更) #7651
Conversation
@goruchanchan |
@nishitatsu-dev |
@nishitatsu-dev
コードレビューも引き続き実施いたします🙇♂️ |
@goruchanchan
ここは、問題なしです。説明不足ですみません🙇🏻
はい。最近の「非Vue化のissue」と同じで、そこまでは不要と考えています よろしくお願い致します🙏 |
すみません、間違ってcloseのボタンを押してました🙇🏻 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nishitatsu-dev
お疲れ様です!いくつか質問しましたので内容のご確認よろしくお願いします🙏
@@ -1,7 +1,5 @@ | |||
# frozen_string_literal: true | |||
|
|||
class API::ExternalEntriesController < API::BaseController |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
すみません、こちらのクラスは何に利用しているんでしょうか?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
このクラスは、今回の変更で利用されなくなりました。
ただ、以下の2つの理由で残すことにしました。
- 類似の非Vue化issueで残していたので(参考:相談部屋一覧を非vue化する by a-kuroki-gs · Pull Request #7447 · fjordllc/bootcamp)
- Issueの説明文に、「最終的にはHotwireにする予定」とあり、Hotwireを調べてみると、APIを使いそうな事が書いてあったので、API関係のものは残した方が良いと考えました(参考:Hotwireとは?|猫でもわかるHotwire入門 Turbo編)
(正直な所、何をどう使うかは分かってないです。。。😅)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
情報共有ありがとうございます!背景等理解できました🙇♂️
@@ -1,2 +1,2 @@ | |||
json.external_entries @external_entries, partial: 'api/external_entries/external_entry', as: :external_entry | |||
json.total_pages @external_entries.total_pages | |||
json.total_pages @external_entries.total_pages if @external_entries.respond_to? :total_pages |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
total_pages
メソッドがない場合もあるということでしょうか?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
これは、今回、APIコントローラ側で@external_entries
を消した為に、total_pages
メソッドが使えない状態になりました。
(この影響で、http://localhost:3000/api/external_entries.json
をブラウザで見た時にエラーが出たので、条件式を追加しました。(参考:/api/talks/index.json.jbuilder))
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
なるほど、app/controllers/api/external_entries_controller.rb
から @external_entries
を削除したためということですね👀勉強になりました!
.container.is-md | ||
= paginate(@external_entries) | ||
.card-list.a-card | ||
= render(@external_entries) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
こちらで app/views/external_entries/_external_entry.html.slim
をレンダーしている認識でいます。
こちらの理解不足で申し訳ないのですが、= render(@external_entries)
とした場合にapp/views/external_entries/_external_entry.html.slim
にレンダーされる仕組みなど教えていただけると嬉しいです🙇♂️
個人的には、明示的に部分テンプレートとローカル変数を指定した方がわかりやすい気がしたのですが、いかがでしょうか?
= render(@external_entries) | |
= render partial: 'external_entry', collection: @external_entries, as: :external_entry |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-
書き方の件、アドバイスいただいた書き方に修正します。
(ローカル環境がエラーで立ち上がらないので、復旧後に修正し、ご連絡します。取り急ぎ。🙇🏻) -
仕組みの件ですが、以下の流れになります。
render partial: 'external_entry', collection: @external_entries, as: :external_entry
で、as
を省略した場合、「パーシャル名」と同名の「ローカル変数名」が渡されます。
(参考:ActionView::PartialRendererの、「Rendering a collection of partials」に出てくる具体例の説明文を参考にしました)- 上記から、
render partial: 'external_entry', collection: @external_entries
と書けます。 - さらに省略記法で、
render @external_entries
と書けます。これは、使われるパーシャル名は、コレクションの中にある「モデル名」を参照して決定される為だそうです。
(参考:5.4 コレクションをレンダリングする < Action View の概要 - Railsガイドの最後の段落に記述があり、参考にしました)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
丁寧にありがとうございます!とても詳しく仕様確認していて素晴らしいと思いました!とても勉強になりました🙇♂️
省略形についてはこちらの理解不足があると思うので komagata さんに判断していただければいいかと思います🙇♂️
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
では、省略形は、いったんこのまま進めます〜
@goruchanchan |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nishitatsu-dev
ご回答ありがとうございます!ご回答いただい内容で疑問は解消できました🙇♂️
追加で一点コメントしましたので内容のご確認よろしくお願いします🙇♂️
@@ -1,2 +1,2 @@ | |||
json.external_entries @external_entries, partial: 'api/external_entries/external_entry', as: :external_entry | |||
json.total_pages @external_entries.total_pages | |||
json.total_pages @external_entries.total_pages if @external_entries.respond_to? :total_pages |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
なるほど、app/controllers/api/external_entries_controller.rb
から @external_entries
を削除したためということですね👀勉強になりました!
.container.is-md | ||
= paginate(@external_entries) | ||
.card-list.a-card | ||
= render(@external_entries) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
丁寧にありがとうございます!とても詳しく仕様確認していて素晴らしいと思いました!とても勉強になりました🙇♂️
省略形についてはこちらの理解不足があると思うので komagata さんに判断していただければいいかと思います🙇♂️
.card-list-item__row | ||
.card-list-item-title | ||
h2.card-list-item-title__title | ||
= link_to(external_entry.title, external_entry.url, rel: 'noopener', target: '_blank', class: 'card-list-item-title__link a-text-link') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
link_to
ですが他の場所では ()
無しで呼び出しているようなので、足並みを揃えてもいいかもです🙇♂️
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
link_to
の部分、()
を削除しました〜
e40c533
to
dd6d44d
Compare
@goruchanchan |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@nishitatsu-dev
お疲れ様です!ご対応ありがとうございました!
LGTMと思いますので承認いたします🙇♂️
@goruchanchan @komagata |
def index | ||
@external_entries = ExternalEntry.all.order(published_at: :desc).page(params[:page]) | ||
end | ||
def index; end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
indexが不要であればcontrollerもここへのrouteも不要だと思うので削除をお願いします~
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
下記を行いました〜
- api関連のファイル(controllerを1個、viewを2個)削除
- routesの記述を削除
dd6d44d
to
0e1d02c
Compare
@komagata また、issueの内容とは関係ない修正ですが、下記も行いました
|
@nishitatsu-dev conflictの修正をお願い致します~。 |
途中保存。テスト未確認、Vueコンポーネント削除前。 途中保存(書き方修正) 途中保存(vueファイル削除。他コメント) VueからHTMLに移行(メモあり)
0e1d02c
to
c02cdef
Compare
@komagata |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
確認させていただきました。OKです~👌
@komagata |
Issue
概要
「みんなのブログ」をVueからHTMLに変更しました
変更確認方法
feature/rewrite-external-entries-from-vue-to-html
をローカルに取り込むhttp://localhost:3000/external_entries
)」にアクセスする※記事のリンクは、存在しないページへのリンクです。URLが
http://test(番号)/example
になっていることを確認して下さい。(参考:db/fixtures/external_entries.yml
)Screenshot
(表示上の変更は無い為、省略します)