有一個(gè)疑問(wèn), 難到要def show后才能進(jìn)行edit以及update的定義, 最后才能work咩? 帶著疑問(wèn)嘗試吧.
在posts的controller里面寫edit定義, 是參照def create的內(nèi)容寫成
def edit
? ? @group = Group.find(params[:group_id])
? ? @post = Post.new(post_params)
? end
這樣就開始報(bào)錯(cuò)
改成如下
def edit
? ? @group = Group.find(params[:group_id])
? ? @post = Post.new
? end
也就是說(shuō), 我去掉了post_params的部分:
這樣寫, 就消除了之前的報(bào)錯(cuò)!
同樣在views/posts下面生成edit的頁(yè)面
成功顯示了edit頁(yè)面! 也就是說(shuō)沒(méi)有def show也是能直接寫edit的啊啊啊!
注意, views的內(nèi)容要指定到[@group, @post]這樣才能顯示! 之前嘗試的時(shí)候, 只用到@post就不顯示~
執(zhí)行就報(bào)錯(cuò)
能正常顯示咧~~
新的發(fā)現(xiàn)
發(fā)現(xiàn)一個(gè)問(wèn)題, 這樣edit執(zhí)行后直接用了new的功能, 即, 之前寫的舊內(nèi)容不會(huì)顯示, edit的頁(yè)面里全是空的文章內(nèi)容, 畢竟是new格式
所以應(yīng)該不能用 @post = Post.new?
嘗試了一下, 真的不會(huì)把之前的內(nèi)容"修改"而是真的執(zhí)行new, 笑死了, 還跟new似的自動(dòng)跳到group顯示頁(yè)面. "所謂的edit"執(zhí)行后,生成了新的文章, 舊文章內(nèi)容還保留. 真是要命哈哈哈哈
是不是定義了update后,就用上@post = Post.update即可顯示舊內(nèi)容了~期待一下
居然不是!!!
把@post = Post.new 改成 @post = Post.find(params[:group_id])就定位成功了!?
報(bào)錯(cuò)匯總
在寫了update的def后, 我還嘗試過(guò)的?
@post = Post.edit?
@post = Post.update?
@post = Post.edit(post_params)
@post = Post.find(post_params)
都被報(bào)錯(cuò)了!
新發(fā)現(xiàn)
改成這樣, 也是同樣能通過(guò)edit之前的報(bào)錯(cuò). 這個(gè)估計(jì)好些? 感覺找的是post的ID?
推測(cè)這個(gè)params的寫法習(xí)慣應(yīng)該是直接寫"[:id]"的話, 就是前面大寫的詞語(yǔ)的id, 比如,?
Post.find(params[:id]) 這里直接的" :id " 就是前面首字母大寫的"Post"的id的意思.?