寫(xiě)在前面:
遇到解決不了的問(wèn)題時(shí)不能慌,首先要做到的就是冷靜。
1、報(bào)錯(cuò)記錄:每次操作完app以外的內(nèi)容時(shí),都要運(yùn)行一遍rake db:migrate這個(gè)命令,相當(dāng)于更新當(dāng)前的資料庫(kù),由于app內(nèi)是動(dòng)態(tài)上傳的,只要有修改就會(huì)體現(xiàn)到本地頁(yè)面上。沒(méi)有運(yùn)行rake db:migrate的話(huà),網(wǎng)頁(yè)與表單內(nèi)容對(duì)不上,就會(huì)報(bào)錯(cuò)。在操作完增加群組和退出群組時(shí),發(fā)現(xiàn)了一個(gè)課程bug(應(yīng)該算的上是個(gè)bug吧),之前開(kāi)始時(shí)已經(jīng)加入了會(huì)員系統(tǒng)devise,操作時(shí)也進(jìn)行注冊(cè)登陸了,而到這一步你會(huì)發(fā)現(xiàn)當(dāng)你是非登陸狀態(tài)時(shí),就會(huì)報(bào)錯(cuò)。是因?yàn)?/p>
if !current_user.is_member_of?(@group)
current_user.join!(@group)
flash[:notice] = "加入本討論版成功!"
else
flash[:warning] = "你已經(jīng)是本討論版成員了!"
end
redirect_to group_path(@group)
end
這個(gè)判斷里面,在非登陸時(shí),current_user是空的,沒(méi)有值,自然不能運(yùn)行。
debug方式通過(guò)助教的知道是在group_controller.rb里面
class GroupsController < ApplicationController
before_action :authenticate_user! , only: [:new, :create, :edit, :update, :destroy]
before_action :find_group_and_check_permission, only: [:edit, :update, :destroy]
將only換成except,變成 before_action :authenticate_user!, except:[:index,:show],這樣以來(lái)就可以限制除目錄和瀏覽項(xiàng)外都需要登陸了。
2、(1)今天學(xué)習(xí)了“新增”、“編輯”、“刪除”、“瀏覽”功能的實(shí)作。實(shí)用了的devise gem來(lái)產(chǎn)生會(huì)員系統(tǒng)。實(shí)用了before_action來(lái)限制只有群組的創(chuàng)建者可以操作編輯和刪除等功能。學(xué)習(xí)了用時(shí)間排序的方法。利用bootstrap里的功能做下拉菜單。
(2)今天的心情就像幾天前的排bug一樣,并非自己在atom編輯器上的失誤,在終端上也沒(méi)有失誤,重做也是一樣。略微奔潰。不過(guò)在助教的幫助下還是找到了原因,還是蠻有成就感的。
(3)今天的一個(gè)重要領(lǐng)悟是遇到解決不了事,可以先去吃個(gè)飯,休息一下,給大腦一個(gè)空當(dāng),整理一下思路。
(4)堅(jiān)持就是勝利!
3、ORID:餓肚子的時(shí)候思維速度急劇下降,餓肚子的感覺(jué)占據(jù)了大腦的大部分思考單位。