0

我一直试图让这个表格工作很长时间,但我似乎无法让它工作。最烦人的部分是一切似乎都正常工作,但数据库中没有任何显示。

控制器:

def create
  @post = Post.new(params[:post])
  respond_to do |format|
    if @post.save!
      format.html { redirect_to @post, notice: 'Lesson was successfully created.' }
      format.json { render json: @post, status: :created, location: @post }
    else
      format.html { render action: "new" }
      format.json { render json: @post.errors, status: :unprocessable_entity }
    end
  end
end

模型

attr_accessible  :userID, :groupID, :postTime, :postText

查看添加帖子

#uploadStyle
    = form_for Post.new do |f|
      = f.label :postText, 'PostText'
      = f.text_area :postText
      %br
      = f.label :postTime, 'PostTime'
      = f.text_area :postTime
      %br
      = f.label :userID, 'UserID'
      = f.text_area :userID
      %br
      = f.label :groupID, 'GroupID'
      = f.text_area :groupID
      %br
      = submit_tag 'Submit'

日志

Started POST "/posts" for 127.0.0.1 at 2013-10-10 22:04:32 -0700
Processing by PostsController#index as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"AUq6mt54N7kA67M1L9wQdqhl2UPRxhOEZOv/LSowcJU=", "post"=>{"postText"=>"work please", "postTime"=>"2013-01-01 04:24:23", "userID"=>"1", "groupID"=>"1"}, "commit"=>"Submit"}
Post Load (0.1ms)  SELECT "posts".* FROM "posts" ORDER BY "posts"."id" DESC LIMIT 1
Post Load (0.2ms)  SELECT "posts".* FROM "posts" 
Rendered posts/index.html.haml within layouts/application (12.5ms)
Completed 200 OK in 40ms (Views: 24.8ms | ActiveRecord: 0.7ms)

路线

  根 :to => 'posts#index'
  匹配 '/posts', :to => 'posts#index'

  资源:帖子做
    会员做
      发布“上传”
    结尾
  结尾

  匹配 '/posts/:id', :to => 'posts#show', :format => false
  匹配 '/add_post', :to => 'posts#add_post'
4

1 回答 1

1

问题出在你的路由上——那里发生了很多矛盾的事情。

资源丰富的路由是在 Rails 中进行路由的首选方式——这就是其中的resources :posts一部分。如果您只使用它,您将获得索引、新建、创建、显示、编辑、更新和删除的路线——其中一些与您所拥有的match /postsmatch /posts/:idmatch /add_post.

如果您删除这些,您的代码应该按预期工作,并且提交表单将由create您的控制器的操作处理。

有关路由的更多信息:http: //guides.rubyonrails.org/routing.html

编辑rake routes:您还可以通过在命令行中运行来查看系统中的所有路由。在它的输出中,你会看到它POST /posts与 PostsController 的 index 动作相匹配,这就是你所看到的,它应该与create动作匹配。

于 2013-10-11T05:51:44.647 回答