【发布时间】:2017-04-06 10:16:24
【问题描述】:
事情是这样的,我想在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
如果你有什么经验,请告诉我,提前谢谢!
【问题讨论】:
-
你分享的
routes.rb,貌似是rake routes的结果。请输入config/routes.rb。 -
对不起,我忘记了。这是routes.rb的代码
标签: ruby-on-rails forms ruby-on-rails-4 post