2015-08-08 82 views
0

我想提交一个表单来创建一个用户,但我看到在Powershell中只发送一个GET请求,没有发送POST请求,因此没有任何东西在数据库。我为我的数据库使用rails 4.1.8,ruby 2.0.0和sqlite 3。表单信息不保存到数据库与轨道

这是我第一次开发东西,我非常感谢任何帮助!让我知道如果我应该包括其他任何东西!

用户页面形式

<!DOCTYPE html> 
<html> 
<body> 
<div class="container"> 
    <form class="form-signin"> 
     <h2 class="form-signin-heading">Sign Up For An Account</h2> 
     <%=form_for(:user, :method => :post) do |f|%> 
     <%= f.text_field :first_name, :placeholder => 'First name' %> 
     <%= f.text_field :last_name, :placeholder => 'Last name' %> 
     <%= f.email_field :email, :placeholder => 'Email' %> 
     <%= f.password_field :password, :placeholder => 'Password' %> 
     <%=f.submit 'Sign Up', class: "btn btn-lg btn-primary btn-block"%> 
     <%end%> 
    </form> 
</div> 

</body> 

</html> 

用户控制器

class UsersController < ApplicationController 
    def new 
    @user = User.new 
    end 
    def create 
    @user = User.new(user_params) 
    if @user.save 
     session[:user_id] = @user.id 
     redirect_to '/dashboard' 
    else 
     redirect_to '/signup' 
    end 
    end 
    private 
    def user_params 
    params.require(:user).permit(:first_name, :last_name, :email, :password) 
    end 
end 

路线

Rails.application.routes.draw do 
    root 'welcome#index' 
    resources :users 
    get '/signup' => 'users#new' 
    get '/login' => 'sessions#new' 
    post '/login' => 'sessions#create' 
    delete '/logout' => 'sessions#destroy' 
    get '/dashboard' => 'hours#new' 
end 
+0

对不起,不,我不要 –

回答

1

我觉得这里的问题是,你有嵌套的另一种形式里面的form_for帮手。 form_for helper会生成一个包含外部标签的完整表单。

您可以找到相关文档here

尝试将其更改为这样:

<div class="form-signin"> 
 
     <h2 class="form-signin-heading">Sign Up For An Account</h2> 
 
     <%=form_for(:user, :method => :post) do |f|%> 
 
     <%= f.text_field :first_name, :placeholder => 'First name' %> 
 
     <%= f.text_field :last_name, :placeholder => 'Last name' %> 
 
     <%= f.email_field :email, :placeholder => 'Email' %> 
 
     <%= f.password_field :password, :placeholder => 'Password' %> 
 
     <%=f.submit 'Sign Up', class: "btn btn-lg btn-primary btn-block"%> 
 
     <%end%> 
 
    </div>

+0

非常感谢!篡改我的代码后,我终于明白了。我删除了多余的表单,并改变了红宝石形式的网址。 –

0

这里是更新和工作用户页面

​​
0

铝那么你需要申报所有这些路线吗?如果你叫'耙路线',他们不存在吗?忽略这个,如果不抱歉哈。