2016-09-02 1 views
1

현재 내 학위를받은 레일에 루비를 가르치고 있습니다. 언어에 익숙하지 않고 마이그레이션이 어떻게 작동하는지 더 자세히 알고 싶습니다.ActiveRecord :: StatementInvalid in UsersController # create (삽입에 새로 추가 된 열이 포함되지 않음)

Error Of problem

내가 추가 열 '이름'을 허용하도록 마이그레이션을 통해 기존 사용자 테이블을 업데이트하고 일부 HTML/루비 사용자가 필드에 입력 할 수 있도록 포함되어있다. 레일스가 INSERT SQL 문을 생성하거나 마이그레이션 할 때 레일스를 업데이트하는 방법을 알 수는 없습니다. 다음은

<%= form_for(user) do |f| %> 
 
    <% if user.errors.any? %> 
 
    <div id="error_explanation"> 
 
     <h2><%= pluralize(user.errors.count, "error") %> prohibited this user from being saved:</h2> 
 

 
     <ul> 
 
     <% user.errors.full_messages.each do |message| %> 
 
     <li><%= message %></li> 
 
     <% end %> 
 
     </ul> 
 
    </div> 
 
    <% end %> 
 

 
    <div class="field"> 
 
    <%= f.label :username %> 
 
    <%= f.text_field :username %> 
 
    </div> 
 

 

 
    <div class="field"> 
 
    <%= f.label :password %> 
 
    <%= f.text_field :password %> 
 
    </div> 
 

 
    <div class="field"> 
 
    <%= f.label :email %> 
 
    <%= f.text_field :email %> 
 
    </div> 
 

 
    <div class="actions"> 
 
    <%= f.submit %> 
 
    </div> 
 
<% end %>

이것은 내가 뭔가 ... 누락해야

Schema After rake db:migrate

마이그레이션 후 스키마입니다 HTML 내 코드입니다

+0

링크가 누락되어서 내가 한 것을 아직 볼 수 없습니다. 그러나 'rake db : migrate'를 실행 했습니까? –

+0

@OwenCarter,'users_controller.rb'에 코드를 게시 할 수 있습니까? 나는 대답을 추가했지만 그 가정에 근거하지 않았다. –

답변

3

서버 로그를 보면 Unpermitted parameter username과 같은 것을 찾아야합니다.

화이트리스트에있는 매개 변수 목록에서 username 필드를 허용해야합니다. users_controller.rbuser_params 방법이 있다고 가정합니다. 새로 만든 username 필드를 허용하도록 수정하십시오.

def user_params 
    params.require(:user).permit(:username, :password, :email) 
end 
+0

정말 고마워, 나는 그걸 잊어 버리고 너무 바보 같아. :)! –

+0

@OwenCarter, 문제가 해결 되었습니까? –

+0

모두 해결되었습니다. 감사합니다. –

관련 문제