2013-11-22 3 views
0

AlphaUser라는 모델이 있습니다. 새 알파 사용자를 만들기 위해 양식을 제출하면 params [: post]에 데이터가 없음을 알립니다. 어떻게 될 수 있습니까?양식을 제출할 때 게시 된 매개 변수가 없습니다.

형태에 대한 나의 코드 :

<%= form_for :alpha_user, 
    url: alpha_users_path, 
    class: "form", 
    id: "alphaTest" do |f| %> 
    <div class="form-group"> 
     <%= f.label :email %> 
     <%= f.text_field :email, 
      class: "form-control", placeholder: "[email protected]" %> 
     <%= f.text_field :producer, 
      class: "hidden", value: "0" %> 
    </div> 
    <%= f.submit "Request Access", class: "btn btn-primary" %> 
<% end %> 

내 컨트롤러 :

class AlphaUsersController < ApplicationController 
    def create 
     render text: params[:post].inspect 
    end 

end 
데이터는 여전히 받았다되어

, 그냥 형식 :

{"utf8"=>"✓", "authenticity_token"=>"blahblahblah", "alpha_user"=>{"email"=>"[email protected]", "producer"=>"0"}, "commit"=>"Request Access", "action"=>"create", "controller"=>"alpha_users"} 
+1

params [: post]의 출처는 어디입니까? 귀하의 양식은 alpha_user를위한 것입니다. params [: alpha_user] –

+0

을 참조 할 필요가 있습니다. 폼의 메서드가 POST 였기 때문에 데이터가있는 서버에 POST 배열을 보냈습니다. Rails 튜토리얼에서 변경된 후에 params [: post] - http://guides.rubyonrails.org/getting_started.html –

+0

@HeliosdeGuerra를 사용하면 Forbidden Attributes 오류가 발생합니다. 나는이 코드를 추가하지만, 그것을 해결되지 않습니다 - '개인 \t 데프 \t params.require post_params (: alpha_user) .permit (: 이메일, 제조자) \t end'을 –

답변

0

다음에 대한 매개 변수를 호출해야합니다. alpha_user ... 예 : params [: alpha_user]. 당신이 레일 4 strong_parameters를 사용하는 경우

,이 트릭을 할 안 :

class AlphaUsersController < ApplicationController 

    def create 
    @alpha_user = AlphaUser.new(alpha_user_params) 
    @alpha_user.save 
    end 

    private 
    def alpha_user_params 
     params.require(:alpha_user).permit(:email, :producer) 
    end 

end 

공지를하여 만들 행동에 더 이상 것을 직접 PARAMS하지만 strong_parameters에서 요구하는 alpha_user_params 방법을 참조.