我已经创建了一个用户注册页面。当用户错误地提交表单时,显示验证错误时,它不会在同一URL上呈现。
注册表单位于以下网址:
http://localhost:3000/signup
Run Code Online (Sandbox Code Playgroud)
我为注册页面添加了以下路线:
resources :users
match '/signup', to: 'users#new', via: 'get'
Run Code Online (Sandbox Code Playgroud)
当我提交表单时,将显示模型验证,但URL重定向到:
http://localhost:3000/users
Run Code Online (Sandbox Code Playgroud)
我希望用户在提交表单后保留在相同的URL。
http://localhost:3000/signup
Run Code Online (Sandbox Code Playgroud)
这是我的控制器代码:
def new
@user = User.new
end
def create
@user = User.new(user_params) # Not the final implementation!
if @user.save
# Handle a successful save.
else
render 'new'
end
end
Run Code Online (Sandbox Code Playgroud)
这是我表格的开始标记:
<%= form_for @user, url: {action: "create"} do |f| %>
Run Code Online (Sandbox Code Playgroud) 我已经在终端运行了这个rake routes命令但是没有工作,但是几天前工作了.请检查一下
jaskaran@jaskaran-Vostro-1550:~/rails_project$ rake routes
rake aborted!
Gem::LoadError: You have already activated rake 10.3.2, but your Gemfile requires rake 10.2.2. Prepending `bundle exec` to your command may solve this.
/home/jaskaran/.rvm/gems/ruby-2.1.0@global/gems/bundler-1.6.1/lib/bundler/runtime.rb:34:in `block in setup'
/home/jaskaran/.rvm/gems/ruby-2.1.0@global/gems/bundler-1.6.1/lib/bundler/runtime.rb:19:in `setup'
/home/jaskaran/.rvm/gems/ruby-2.1.0@global/gems/bundler-1.6.1/lib/bundler.rb:120:in `setup'
/home/jaskaran/.rvm/gems/ruby-2.1.0@global/gems/bundler-1.6.1/lib/bundler/setup.rb:7:in `<top (required)>'
/home/jaskaran/rails_project/config/boot.rb:4:in `<top (required)>'
/home/jaskaran/rails_project/config/application.rb:1:in `<top (required)>'
/home/jaskaran/rails_project/Rakefile:4:in `<top (required)>'
LoadError: cannot load such file -- bundler/setup
/home/jaskaran/rails_project/config/boot.rb:4:in `<top (required)>'
/home/jaskaran/rails_project/config/application.rb:1:in `<top (required)>'
/home/jaskaran/rails_project/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)
Run Code Online (Sandbox Code Playgroud)