2016-12-06 47 views
0

enter image description here我不明白爲什麼我的表單不通過params的註冊控制器。我有一個註冊表單,可以使用jquery和javascript作爲登錄表單。我的第二個表格(最後一個)應該向註冊控制器發送註冊信息。不幸的是我不斷收到錯誤的參數(0代表1)。我不確定我沒有通過這些信息,任何幫助表示讚賞。不通過params行動與form_for

new.html.erb

<div id="imageDisplay"></div> 

<div class="login-switch"> 
    <div id="login-div" class="button button-outline button-calm switches active-button"> 
    LOG IN 
    </div> 
    <div id="signup-div" class="button button-outline button-calm switches"> 
    SIGN UP 
    </div> 
</div> 

<%= form_for(@user, url: sessions_path, html: {id: "sign-in-form"}) do |f| %> 
    <div class="list list-inset"> 

    <label id="sign-up-input" class="item item-input"> 
     <%= f.email_field :username, autofocus: true %> 
    </label> 
    <label id="sign-up-input" class="item item-input"> 
     <%= f.password_field :password, autocomplete: "off" %> 
    </label> 

    <%= f.submit "Log in", class: "button button-block button-calm" %> 
    </div> 
<% end %> 


<%= form_for(@user, url: registrations_path, html: {id: "sign-up-form"}) do |f| %> 

    <div class="list list-inset"> 
    <div id="part-1"> 
     <!-- part one of sign up --> 
     <label id="sign-up-input" class="item item-input"> 
     <%= f.email_field :email, autofocus: true, placeholder: "E-mail" %> 
     </label> 

     <label id="sign-up-input" class="item item-input"> 
     <%= f.password_field :password, autocomplete: "off", placeholder: "Password" %> 
     </label> 

     <label id="sign-up-input" class="item item-input"> 
     <%= f.password_field :password_confirmation, autocomplete: "off",placeholder: "Confirm password" %> 
     </label> 

     <div id="slide-part-2" class="button button-block button-calm">Next</div> 

    </div> 

    <div id="part-2"> 
     <!-- part two of sign up --> 
     <%= f.file_field :avatar, id: "fileInput"%> 

     <label id="sign-up-input" class="item item-input"> 
     <%= f.text_field :username, autofocus: true, placeholder: "username" %> 
     </label> 

    <%= f.submit "Sign up", class: "button button-block button-calm" %> 

    </div> 
<% end %> 

    </div> 

</div> 

registrations_controller.rb

class RegistrationsController < ApplicationController 
[![enter image description here][1]][1] def new 
    end 

    def create 
     @user = User.create(sign_up_params) 
     if @user.save 
      log_in @user 
      flash[:success] = "We Made it!" 
     else 
      flash[:error] = @user.errors 
     end 
    end 

    private 

    def sign_up_params 
     params.require.(:user).permit(:email, :username, :avatar, :password, :password_confirmation, :trump) 
    end 

end 
+3

嘗試刪除'.' - >'require。(:user)'=>'require(:user)' –

回答

1

錯誤說wrong number of arguments(0 for 1),那是因爲你沒有通過任何參數的require方法,你的論點左括號前添加一個.,則需要將其刪除,因爲Ruby正在執行(:user)作爲方法,但不是。通過糾正錯字在他的回答

def sign_up_params 
    params.require(:user).permit(:email, :username, :avatar, :password, :password_confirmation, :trump) 
end 

希望幫助提到DP7修正這個錯誤!

+1

這是嘗試編碼時沒有睡眠的結果。這樣一個愚蠢的錯誤,謝謝。 – RickD

3

刪除.params.require

def sign_up_params 
    params.require(:user).permit(:email, :username, :avatar, :password, :password_confirmation, :trump) 
end 
1

它應該是這樣的:

def sign_up_params 
     params.require(:user).permit(:email, :username, :avatar, :password, :password_confirmation, :trump) 
end