【未経験プログラミング】twitterクローン【41日】

おそらくgitcloneを行った関係で pushができなくなりました。

https://i.gyazo.com/29f9d5655cb512742a0e4b193d3c025c.png

存在しないtasklistsテーブルにuser_idカラムを追加する命令になっているようです。

作成したマイグレーションファイルの記述内容が間違っているので、そちらを確認してみてください

マイグレーションファイルが無駄にできていた。

rails db:migrate:statusで確認

downを手動削除

rails db:migrate`

無事起動。

 

https://gyazo.com/b7f65ba29b2894e2c688750c560c168f

そのエラーは、`logged_id?`というメソッドが定義されていないことが原因だと思いますので、定義されているか確認してみてください。

app/helpers/sessions_helper.rb

module SessionsHelper
def current_user
@current_user ||= User.find_by(id: session[:user_id])
end

def logged_in?
!!current_user
end
end

としてるのですが、間違いでしょうか?

mentor-kawaguchi [18:33]
そこまではOKです!
controllerでのincludeが漏れているのではないでしょうか?

 

アンサー:漏れていましたorz

 


https://i.gyazo.com/9c47978861425d551c721f8546211ad8.png

エラー部分で不自然に空白があるのが確認できます。
このような場合は全角スペースが紛れているので、削除してみてください。
Usersコントローラの記述ですね
全角スペースを見つけるには、探したいファイルを開いた状態で、キーボードで「command + F(Windowsの場合、Ctrl + F)」を押してください。

そうすると、検索窓が表示されます。
そこで、全角スペースを入力してください。もしあれば数字で表示されます。またその場所も表示されます。

そして検索窓を隠すにはescキーです

 

→全角2箇所ありましたとさ。。。。。削除して無事起動

 

タスクの投稿のstatusがWebアプリケーション上で受け取ってくれません。
https://gyazo.com/e3f944622e507d924825540a915e406f

railsコンソールでは
task = user.tasks.build(content: 'hello', status: 'hello2' )
で保存できるのですが教えて頂けますか?

 

A:そうしたらビュー側のフォーム部分の記述の確認とコントローラー側のストロングパラメータの2箇所を確認してみてください

まずその表示でも「タイトル」となっているのが不自然ですが、その入力欄の生成部分の確認です

 

params.require(:task).permit(:content, :user_id)

上記の記述削除で無事起動

 

https://gyazo.com/f0b4b58a44a1fcc0814a1e6140f06125

と出たので
def show
@task = current_user.tasks.find(params[:id])
end

を追記したところ
https://gyazo.com/2b8038df90f1bed530d17a7d8a0059a4

と出ます。次はどこを確認するべきでしょうか?

 

ID29のレコードがないといわれていますね。
これはどのような操作をした際にでるエラーでしょうか?
削除した際に出るのでしたら削除後のリダイレクト先をTOPページにするなどすると良いと思います。

 

A:def destroy部分の
redirect_back(fallback_location: root_path)
から
redirect_to tasks_url
に変更したらうまくいきました。

 

------------------------------ここから地獄の10時間オーバー

git checkout  ハッシュ値で 呼び出し 課題取り組んでいました。
git push origin master で反映できないので
課題完了後に git checkout master に変更したところ
データがロールバックしたのですが戻す方法はあるのでしょうか?

 

ごめんなさい。どのような状況で git checkout master を行いましたか?
 git checkout master を行う前の状態をコミットしていますか?

 

ターミナルのログが消えてしまい正確には言えないのですが
detached HEADがでたので git checkout master行いました

行う前にコミットはしましたcommitはしました。

 

ログを確認して `git reset --hard リビジョン番号` で戻せませんでしょうか?

https://gyazo.com/f2c86c0bb120eca3695e593dd131c721

さらに

rails db:migrate:resetを行い戻りました。

 

動作はうまくいくようになったのですが、下記のようにでます。
rm -rf .git/ でいいのでしょうか?

https://gyazo.com/a50c85c8afc871d6373c3af9874968b7

 

それをやるとリポジトリ削除をすることになりますが、削除したいのでしょうか?今までのgit履歴が全て無くなってしまい復元できなくなってしまいます。

あ。見たところ不要なものを参照しているようですね。
これはenvironment直下にあるリポジトリが原因かなと思います。
これは不要なので削除した方が良いです。

 

rm -rf ~/environment/.git

→fatal: pathspec '/home/ec2-user/environment/.git' did not match any files

 

メンターの方は問題ないそうです
https://i.gyazo.com/c33a37c0da402ff52c9027f50eb4c106.png

 

⑧git rm --cached kadai-tasklist

git add . はうまくいきました。
git commit -m "xxx"
git push origin master

ec2-user:~/environment/kadai-tasklist (master) $ git push origin master
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

アクセス権がないと?
git push -f origin master を行っていいのでしょうか?

 

ここでメンターさん時間になり別のかたに交代

 

A:リモートレポジトリの登録が行なわれていないようですね。
`git remote add orign <リモートレポジトリ>` のようにして、リモートレポジトリの登録をしてあげる必要があります。

リモートレポジトリが登録できているかの確認は、 `git remote -v` でしてみてください。
何も表示されなければ、リモートレポジトリが登録されていないということになります。

→何も表示されない。

 

A:リモートレポジトリの登録をしてあげてください。

 

登録時にSSHで登録してしまっていた

HTTPSで登録しないと下記エラーがでる。

https://gyazo.com/1e9fbc56632a606953bdfe0347ef7302

 

pushした時にURLとパスワードを求められるようにあったのですが、
下記の通りマージエラーがでます。

 

A:リモートレポジトリの変更はきちんとできたみたいですね。

ローカルの方が正しければ、 `git push origin master -f` として、強制的にローカルからの push で上書きできますので試してみてください。

 

⑨herokuにデプロイしうと思ったら上記どうようのエラー

 

`git push origin heroku -f` としてみて上手くいけば問題ないです。
もし駄目でしたら、 heroku アプリの登録からやりなおしてみた方が良いかもしれませんね。

 

当然のように駄目でした

 

以上、です。