2021/01/27 day22
Ruby on Rails Twitterクローン課題
今日からTwitterと並行してQiita活用していく!!
Rails入って、難しくて理解に苦しんでたけど
すこーーーしずつ理解できてる。気がする。笑
アリの歩くスピードレベルだけど、もっと頑張ろう
※今日学んだことを殴り書きで貼り付けてます。
意味わからないところばかりだと思うけど自分でわかるように書いているのでご容赦下さい。
あとまだ理解不足なところばかりなので、明らかに違う!というところは何かアドバイスください、
コントローラーの@word の部分は、
例@words = Word.all だと.allで複数のレコードをDBから持ってくるから複数形で@words sをつける
@word = Word.new これだと .newで一つのインスタンスを生成するから word s つけない
こういう形で区別していく
コントローラーのアクションは全く別物だから、同じ単語でもエラーにならない
それぞれのファイルに
例
def index
@words = Word.all
end
def index
@words = Word.all
ここにrender:index がある。これはindexファイルに飛ばすためのもの。だけどdef indexでもう指定してあるので書く必要なし。ただ、他のファイルに飛ばしたい場合は、
render:new など他のファイルにとぶ。この場合render:の方が優先される
new,showなども同様
end
このツイッタークローンでいうここは、新規の画面をnewアクションとcreateアクションの2段階で登録
def new
@word = Word.new
end
def create
Word.create(word_params)
redirect_to new_word_path
end
twitterクローンでいうアクション詳細
リソース=処理の対象になる情報、特定の資源
Twitterクローンでいうと、Twitter全体の情報
例
def create
((# binding.pry))
@word = Word.new(word_params)
if @word.save
redirect_to new_word_path
else
render :new
end
省略
private
def word_params
params.require(:word).permit(:content)
end
(word_params) これは、privateで取得したやつを引数で(word_params)で取得している
❶if @word.save
redirect_to new_word_path
❷ else
render :new
❶もし、(word_params)で取得した値がsave(投稿)できたら、new.html.erbのページにリダイレクトする(投稿ボタンを押した後の画面、初めの投稿する前の↓の画面に戻る。)
❷そうじゃなかったら、
def new
@word = Word.new
end
newアクションが起きる→new.html.erbのページになって、エラー文がでる
paramsとデバックがまだよく理解できない、
学習開始してもう3週間すぎた。。
まだまだ学ぶことたくさんあるけど楽しんでやります