【定期勉強会】2/6 Railsポートフォリオレビュー会
スパルタコースでは毎週何かしらのイベントを開催しています。
ちょっと前の内容ですが、今回もまた「Railsポートフォリオレビュー会」です。
あ、週に一人くらいまでなら無償でレビューできると思うのでお気軽にお声がけください。
動画
Railsポートフォリオレビュー会 | TechEssentials
雑なメモですが、こんなフィードバックをしました。
2/6 ポートフォリオレビュー会
https://github.com/RyotaroNishimura/toikke
https://elegant-livre-92785.herokuapp.com/
ここの「Copy permalink」からURLをコピって貼り付けていきましょー。
(例)
だいそん
belongs_to :user
はなくていい?
コミットメッセージ「1」とかはわかりづらすぎる
READMEに何も書かれていないのでどんなアプリなのかわからない。テーブル設計とかインフラ構成とかあってもいいかも。
post "favorites/:post_id/create" => "favorites#create"
resources :post do
resource :favorite
end
いいねするとき POST /posts/:post_id/favorite
いいねを解除する時 DELETE /posts/:post_id/favorite
resources :posts do
get :favorites, on: :collection
end
GET /posts/favorites
みけた
gitignoreについて
https://github.com/RyotaroNishimura/toikke
- ここで参照できます
- vendorのディレクトリはgitignoreする
- Macの方はこれもgitignoreに追加しましょう
Postクラスのfeed_comment(post_id)メソッドについて
https://github.com/RyotaroNishimura/toikke/blob/master/app/models/post.rb
# post has many comments の関係
def feed_comment(post_id)
Comment.where("post_id = ?", post_id) # Comment.where(post_id: post_id)
end
associationを使えばメソッドが不要なはず。
例えば、これで最初のpostに紐づくcommentsを取得できます
@post = Post.first
@post.comments
なおき
%記法で書いた方が見栄えがいい気がします!
これは好みでしょうか?
before_action :logged_in_user, only: %i[ index show edit update destroy following followers ]
たいしろう
HTMLに変換された時に、labelのfor
属性とinputの id
属性が
一致していないとラベルを押した時にinputが活性化しないはずです!
なんで、どうしてもと言う理由がない限りはデフォルトで付与される title
を使った方がいいと思いました!
まこと
newアクションでオブジェクトを作成していないので、新規登録ができなくなっていると思いました!
ゲン
質問なんですけどこの部分をこのように変えても動作は同じなんですか?
if user&.authenticate(params[:session][:password])
かろりーな
https://github.com/RyotaroNishimura/toikke/blob/master/config/database.yml
mysqlのユーザーとパスワードが直書きになっているので、
.gitignoreファイル等で管理に含めないほうがよさそうだと思いました。
JUN
viewportを記載した方がスマホでみやすくなると思いました!
てる
せっかく関連付けしているのでFavoriteでなく、favoritesを使った方が良いかと!
(みけたさんがpostクラスに言及していることとほぼ同じです!)
存在しているかどうかの判定ならpresent?使った方が明示的でわかりやすいかと!
belongs_toで関連付けするとデフォルトで外部キーのnilにvalidateがかかります。
他のクラスで設定している外部キーのvalidateにも言えるはず!
いちおう、rails guideに乗っております!
(https://railsguides.jp/upgrading_ruby_on_rails.html?version=6.1#active-record%E3%81%AEbelongs-to%E3%81%AF%E3%83%87%E3%83%95%E3%82%A9%E3%83%AB%E3%83%88%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7%E5%BF%85%E9%A0%88)
ログインを許可しないアクションの方が少なそうなのでonlyでなくexcept使った方がコード短くて良いかなと!
登録されたユーザーでないと編集ができないにしているのでしょうか?
logged_in_userでログインしているかどうかを制限しているかつさらにeditとupdateに関して現在のユーザーであるかどうか判定する理由が何故なのか知りたいです!!
update_attributesを使用したのか気になりました!
current_user使った方が安全性増すと思います!!
こんな感じで毎週勉強会をやってます。
スパルタコースはサポートの質が落ちないように少数のコミュニティとして活動しています。
実際に未経験からRailsの業務委託で仕事をしている人もいるくらいなのでちゃんと学習すればスキルはつきます。
普段はSlackでやりとりしてますのでリンクを貼っておきますね。
Slackコミュニティへの招待リンク
ではでは。