-
Notifications
You must be signed in to change notification settings - Fork 72
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
ブログ記事に「サムネイル画像を本文に表示」というチェックボックスを追加。 #7304
ブログ記事に「サムネイル画像を本文に表示」というチェックボックスを追加。 #7304
Conversation
app/views/articles/_form.html.slim
Outdated
.form-item | ||
= f.check_box :insert_thumbnail, { check: @article.new_record? || @article.insert_thumbnail } | ||
= f.label :insert_thumbnail, 'サムネイル画像を記事に表示' | ||
.a-form-help | ||
p チェックを入れると、ブログ記事の本文内にもサムネイル画像が表示されます。 | ||
|
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.
@machida
お手数ですが、お手すきでデザインのほどよろしくお願いいたしますm(__)m
73fc2dc
to
250186f
Compare
dbd0f56
to
e1879fb
Compare
@masyuko0222 git pull --rebase origin feature/checkbox_displaying_thumbnail_in_article をお願いします。 |
9bab6dc
to
9e2548e
Compare
@omochiumaiumai もしチーム開発既に終わっちゃってたり、忙しかったらお気兼ねなく仰ってくださいー。 |
@masyuko0222 |
@omochiumaiumai @SuzukaHori |
@masyuko0222 |
ec41c43
to
16e6b8a
Compare
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.
お待たせしました!
記事内のサムネイル画像の表示・非表示が切り替えられることを確認しました。動作はバッチリでした👍(手順を詳しく書いてくださっていたのでわかりやすかったです!)
コードの方で数点コメントしましたので、ご確認をお願いします🙏
@@ -0,0 +1,5 @@ | |||
class AddInsertThumbnailToArticles < ActiveRecord::Migration[6.1] | |||
def change | |||
add_column :articles, :insert_thumbnail, :boolean, default: true, null: false |
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.
insert
は「データを挿入する」イメージが強いため、article.insert_thumbnail
というコードを見たときに「サムネイルのデータを記事に追加するメソッド」という誤解を招きそうです👀
「サムネイルを本文中に入れるかどうかを示すboolean」というのが複雑なので、良い代案が浮かばないのですが、いくつか思いついたのを一応書いておきます💦
- inline_thumbnail
- body_thumbnail
- thumbnail_required_in_body
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.
baf6c90
こちらのコミットで修正しました!
一旦、真っ直ぐにdisplay_thumbnail_in_body
、というカラム名にしました。
時間経ってみて、今回の変更含めどれが一番しっくり来そうでしょうか~?😅
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.
修正ありがとうございます!
私は「display_thumbnail_in_body」のままがいいと思いました😊
= image_tag @article.prepared_thumbnail_url, class: 'article__image' | ||
- elsif !thumbnail_blank?(@article) | ||
= image_tag @article.selected_thumbnail_url, class: 'article__image' | ||
= display_thumbnail(@article) | ||
.article__body |
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.
ヘルパーメソッドからimage_tag
を返すと、HTMLの構造がぱっと見でわかりにくくなるかもと思いました。
複雑な処理をhelperに移したい場合、条件分岐の部分(@article.thumbnail.attached? && @article.prepared_thumbnail?
と!thumbnail_blank?(@article)
)をヘルパーに置き換えて、image_tag自体はshow.html.slimで直接で表示するのはいかがでしょうか??(app/helpers/layout_helper.rbのコードのようなイメージです)
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/articles/_form.html.slim
Outdated
.checkboxes | ||
.checkboxes__items | ||
.checkboxes__item | ||
= f.check_box :insert_thumbnail, { checked: @article.new_record? || @article.insert_thumbnail, class: 'a-toggle-checkbox' } |
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.
初期値がtrue
なので、f.check_box :insert_thumbnail, class: 'a-toggle-checkbox'
でも動きそうに見えました👀(テストは通りました)
この書き方をしている理由がありましたら教えていただきたいです🙇♀️
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.
おまたせしました!
ご指摘点修正しましたので、ご確認お願いしますm(_ _)m
(てすとまだでした
@@ -0,0 +1,5 @@ | |||
class AddInsertThumbnailToArticles < ActiveRecord::Migration[6.1] | |||
def change | |||
add_column :articles, :insert_thumbnail, :boolean, default: true, null: false |
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.
baf6c90
こちらのコミットで修正しました!
一旦、真っ直ぐにdisplay_thumbnail_in_body
、というカラム名にしました。
時間経ってみて、今回の変更含めどれが一番しっくり来そうでしょうか~?😅
app/views/articles/_form.html.slim
Outdated
.checkboxes | ||
.checkboxes__items | ||
.checkboxes__item | ||
= f.check_box :insert_thumbnail, { checked: @article.new_record? || @article.insert_thumbnail, class: 'a-toggle-checkbox' } |
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.
おっしゃる通り不要ですので削除しました!
= image_tag @article.prepared_thumbnail_url, class: 'article__image' | ||
- elsif !thumbnail_blank?(@article) | ||
= image_tag @article.selected_thumbnail_url, class: 'article__image' | ||
= display_thumbnail(@article) | ||
.article__body |
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.
修正お疲れ様です!🍵
前回の修正箇所が直っている事を確認しました👍
数点コメントを追加しましたので、お手数ですがご確認をお願いします🙇♀️
以下、0d22823 以降の変更について質問です。
recent_articlesに関わる変更の意図は、ファットコントローラーの解消という解釈でいいでしょうか?
PR自体は「本文中にサムネイル画像を表示するチェックボックスの追加」を目的としたものですが、「最新記事の取得」の処理がコントローラーからモデルに移動しているなど、少し大きめの変更がされているように思えました。
「最新記事の取得」に関わる変更がこのPRに入って良いものなのか、判断がつきませんでした。このことについてご意見を伺いたいです!🤔
おっしゃる通り今回はPRの範囲からは超えてやりすぎてしまいました😅 どうしてもやり取りが発生してしまいそうで、PRに関係ない所にレビュワーの労力を割かせてしまうのは良くないと思い、関係ない修正(ファットコントローラーの解消)は一旦なかったことにしました。 お手数ですが、上記踏まえた上で改めてご確認いただけますと幸いです・・・! ちなみにファットコントローラーの解消については、下記の記事を参考にしていました。 |
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.
お返事と修正ありがとうございます!
ファットコントローラー解消の件、承知しました。
コードを読んでいて、私もとても勉強になりました🙏ありがとうございます!
変数名について一点だけ追加でコメントしましたので、ご検討ください(前回見逃していてすみません🙇♀️)
ごく些細な内容ですので、こちらでApproveとさせていただきます🎉
test/models/article_test.rb
Outdated
@@ -13,6 +13,14 @@ class ArticleTest < ActiveSupport::TestCase | |||
assert_equal '/ogp/ruby_on_rails.png', article.selected_thumbnail_url | |||
end | |||
|
|||
test '#published?' do | |||
public = articles(:article1) |
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.
public
は予約語ではないようですが、 public・private・protectedの特別な意味を持つpublic
と紛らわしいため、特にこだわりがないならpublic_articles
のような変数名の方が良いかなと思いました!
1097460
to
b250a1e
Compare
@SuzukaHori @komagata |
article.display_thumbnail_in_body?がtrueの時点で、article.thumbnail.attached?も必ずtrueになります。 画像アップロードしていなくても、それ用のサムネイルを表示するためです。 それを利用したリファクタリング
以下のコミットで追加した、".fetch_recent_articles"メソッド。10個の記事を取ってくることを確認。 0d22823
286c555
to
a480d61
Compare
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 mainブランチでの、 追記: |
Issue
概要
変更確認方法
feature/checkbox_displaying_thumbnail_in_article
をローカルに取り込むrails db:migrate
foreman start -f Procfile.dev
で起動するkomagata
でログイン/articles/new
に移動「サムネイル画像を記事に表示」のチェックボックスがデフォルトでONになっていることを確認する
任意の画像を選択する。タイトルや内容の項目は適当に入力をしておく。
公開するボタンを押下する
リダイレクト先のブログ本文内に、選択したサムネイルが表示されていることを確認する
内容修正ボタンを押下する
「サムネイル画像を記事に表示」のチェックボックスをクリックし、OFFにする
更新するボタンを押下する
リダイレクト先のブログ本文内に、サムネイルが表示されていないことを確認する
再度、内容修正ボタンを押下する
「サムネイル画像を記事に表示」のチェックボックスがOFFのままであることを確認する
Screenshot
変更前
変更後