Railsアプリプロジェクト


( https://github.com/RoUchiha/Flatiron-Phase-3-Rails-app-portfolio-project )

このプロジェクトは、フェーズ 2 のプロジェクトによく似ていましたが、より長くなりました.私に要求されたことのほとんどはかなり単純なものでしたが、実行しなければならなかったコーディングの量がこれを困難にしていました.コードが増えるということは、ミスの可能性が増えることを意味し、最終的には自分自身のかなりの数をキャッチすることになりました.

私が作成した Rails アプリは、ユーザーがサインアップして番組を作成し、他のユーザーがその番組を見終わったときに見ることができるように評価/レビューを残すことを可能にする TV 番組トラッカーです.このアプリの最も困難な部分は、ルートを把握し、ユーザーがサインインしていない場合にページへのアクセスを防止することでした.それが完了した後、次の課題は、ネストされたリソースを介して評価およびコメント オブジェクトを作成することでした.いくつかの Google 検索のおかげで、ポップアップし続けるエラーを最終的に解決し、アプリの残りの部分は簡単に完了しました. OmniAuth を利用して、ユーザーが GitHub 経由でサインアップ/ログインできるようにすることは、前のレッスンの規則に従ったので簡単でした.
def create
user = User.find_by(username: params[:session][:username].downcase)
if user && user.authenticate(params[:session][:password])
session[:user_id] = user.id
redirect_to user_path(user)
else
flash[:alert] = "Incorrect username and/or password. Please try again."
render :new
end
end

`def github_login
@user = User.find_by(username: auth[:info][:nickname])

    if @user.nil?
        @user = User.new(
            username: auth[:info][:nickname],
            full_name: auth[:info][:name],
            password: SecureRandom.uuid
        )
    end
    if @user.save 
        session[:user_id] = @user.id 
        redirect_to user_path(session[:user_id])
    else
        render :new 
    end
end`

このアプリは、多くの has_many および has_many_through 関係を利用して、アプリの機能をよりスムーズにし、親オブジェクトと子オブジェクト間の関連付けを簡単に作成できるようにしました.また、Flash アラートを利用してエラーを表示し、特定のページにアクセスできない理由をユーザーに知らせました.

まだ改善が必要な領域は、CSS/HTML スタイルを使用してアプリの見栄えを良くすることです.プロジェクトをできるだけ早く完了して次のフェーズに進むことができるように、すべての基本的な白黒の最小限の外観を維持しましたが、次のいくつかのプロジェクトのスタイリングを改善するために作業する予定です.

このプロジェクトは、ウェブサイト/アプリを作成する必要がある「現実世界」の状況で私に期待されることの多くのように感じられ、これらの基本をしっかりと把握しているように感じます.