私は Rails の初心者ですが、ガイドに従って以下のようなテスト プロジェクトを作成します。
admin_controller.rb
def blogEdit
@btnName = "更新"
@submitURL = "blogUpdate"
@blog=Blog.find(params[:id])
end
def blogUpdate
@blog=Blog.find(params[:id])
@blog.update(params[:blog])
redirect_to "/admin/blogList"
end
blogEdit.slim
= render "blogForm"
_blogForm.slim
=form_for :blog,url:{action: @submitURL} do |f|
=f.label :title ,"标题"
=f.text_field :title
=f.label :body ,"内容"
=f.text_area :body,rows:10,style:'width:500px;'
=f.label :author ,"作者"
=f.text_field :author
=f.hidden_field :id
=f.submit @btnName,class:'btn'
しかし、ブログを更新すると、次のエラーが表示されます。
Couldn't find Blog without an ID
Rails.root: /home/hxh/share/ruby/myblog
Application Trace | Framework Trace | Full Trace
app/controllers/admin_controller.rb:28:in `blogUpdate'
Request
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"3SBp+xSft8SzA5poczxNSU1zKReO2OpZQqgESn6ZURs=",
"blog"=>{"title"=>"违法的",
"body"=>"的说法都是",
"author"=>"似懂非懂",
"id"=>"2"},
"commit"=>"更新"}
だからそれは私が得られないことを示していますparams[:id]
@blog=Blog.find(params[:id])
ガイドに従っていたのに、なぜ結果が得られたのですか?