0

私は 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])

ガイドに従っていたのに、なぜ結果が得られたのですか?

4

3 に答える 3

0

あなたのフォームでは、代わりに@submitURLを使用しませんblogUpdate_blog_path(@blog)か?

于 2013-09-13T06:27:16.093 に答える