2013-10-30 3 views
0

레일 초보자 용 Ques.I 강한 매개 변수가 데이터베이스에 저장되지 않는 이유를 찾을 수 없습니다. 레일즈 g 모델 고객 이름을 사용하여 모델을 만드는 데 스 캐 폴딩을 사용하지 않습니다. string email : string command. 레일 콘솔을 사용할 때도 마찬가지입니다.데이터베이스에 강력한 매개 변수가 저장되지 않았습니다.

My customer.rb 
class Customer < ActiveRecord::Base 
    has_many :products,through: :order 
end 

내 usercontroller는

class UserController < ApplicationController 

    def login 
    @Customer=Customer.new(master) 
    @Customer.save 
    end 

    def home 
    end 

    private 

    def master 
    params.require(:customer).permit! 
    end 
end 

my html code: 
<form action="login"> 
    name <input type="text" name="customer[name]"> 
    email<input type="email" name="customer[email]"> 
    <input type="submit" value="enter"> 
</form> 

아직도 내가 PARAM의 오류 얻을 :

+0

모델을 저장하면 유효합니까? – polmiro

+0

레일 콘솔로 잘 작동합니다. 아직도 관련있는 것을 찾을 수 없습니다. – user2526795

답변

0

또한 answer of user1854802에 추가로 params을 다시 살펴보아야합니다.

#permit! 방법을 사용하면 대량 할당이 허용됩니다. 따라서 해시 값 params에 주어진 매개 변수는 허용됩니다. params에서 허용하려는 속성을 필터링하는 대신 #permit (비밀번호 없음 !) 메소드를 사용하십시오. 예를 들어

파라미터 customerparams에 있는지와 customeremailname 속성이 허용되도록
params.require(:customer).permit(:name, :email) 

.

0

의 선

@Customer=Customer.new(master) 
@Customer.save 

가 있어야한다 찾을 수없는 고객을

@customer=Customer.new(master) 
@customer.save 

원하는 경우 내가 작업중인 응용 프로그램의 컨트롤러 중 하나에서 동일한 줄을 붙여 넣을 수 있습니다. 피에르

관련 문제