[英]Ruby on Rails POST request fails
事情就這樣了,我想在Ruby on Rails的頁面中寫一個登錄名,當url為localhost:3000/admin
,我將得到需要填寫的頁面。填寫完表單后,我提交按鈕和表單應允許使用post
方法進行create
操作,但是仍可與get
方法和new
操作一起使用。
發生什么事了?
這是routes.rb
文件:
Prefix Verb URI Pattern Controller#Action
new_admin_users GET /admin/users/new(.:format) admin/users#new
admin_users POST /admin/users(.:format) admin/users#create
admin GET /admin(.:format) admin/users#new
POST /admin(.:format) admin/users#create
posts_home GET /posts/home(.:format) redirect(301, /posts)
posts_about GET /posts/about(.:format) redirect(301, /about)
然后這是新動作
<form class="form-signin">
<h2 class="form-signin-heading">Please sign in</h2>
<%= form_for :user,url:admin_users_path do |f| %>
<p>
<%= f.label :name%><br>
<%= f.text_field :name ,class:"form-control" %>
</p>
<p>
<%= f.label :pass%><br>
<%= f.text_field :pass,class:"form-control" %>
</p>
<div class="checkbox">
<label>
<input type="checkbox" value="remember-me"> Remember me
</label>
</div>
<p>
<%= f.submit'Sign in', :class=>"btn btn-lg btn-primary btn-block" %>
</p>
<%= link_to 'Back', posts_path %>
<%end%>
</form>
這是routes.rb
:
Rails.application.routes.draw do
namespace :admin do
resources :users
get "", to:"users#new"
post "", to:"users#create"
end
get "/posts/home", to: redirect("/posts")
get "/posts/about", to: redirect("/about")
resources :posts do
resources :comments
end
root "posts#index"
get "/home",to: "posts#index"
get "/about",to: "posts#about"
end
如果您有意見,請告訴我,謝謝。
您必須在控制器內部構建實際的User
對象。 嘗試在表單中使用它,而不是symbol :user
。
<%= form_for @user, url: admin_users_path do |f| %>
...
您可以嘗試顯式指定方法post而不是
<%= form_for :user,url:admin_users_path do |f| %>
用這個:
<%= form_for :user,url:admin_users_path, method: :post do |f| %>
還要以這種方式創建的表單檢查創建的動作
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.