2017-10-13 1 views
1

내 사용자는 대학 정보를 매개 변수로 간단한 양식을 통해 제공하고이를 서버로 보냅니다.Ruby Titleize 간단한 양식 입력

<div class="col-xs-12 col-s-4 col-sm-4"> 
    <%= simple_fields_for :users do |r| %> 
    <%= r.input :university, required: false, placeholder: "University", label: false %> 
    <% end %> 
</div> 

사용자가 제공 한 매개 변수 입력을 어떻게 제목화할 수 있습니까?

나는
<%= r.input :university.titleize, required: false, placeholder: "University", label: false %> 

을 시도했지만 작동하지 않습니다.

답변

1

입력의 첫 번째 매개 변수는 입력을 생성 할 사용자 속성을 수신하므로 titleize 메소드를 연결하는 곳이 아닙니다.

수행 할 수있는 작업은 레코드를 저장하기 전에, 또는 수행 할 작업을 수정하는 것입니다. 당신이 만드는 방법에 데이터를 전송하는 경우 예를 들어, 당신은 사용자를 생성하고처럼 데이터베이스에 저장 한 후 수정할 수 있습니다 :

def create 
    @user = User.new(user_params) 
    @user.university = @user.university.titleize 
    ... 
+0

오 좋아 내가 알고하지 않았다. 나도 알기 때문에 서버 측에서 변경해야합니다. 나는 그것을 밖으로 시도 할 것이다. –

+0

예, 할 일에 대한 질문에 더 많은 정보를 추가 할 수 있지만 여전히 명확하지 않습니다. –

1

텍스트를 titleize하려는 경우 사용자가 입력 한 후에 클라이언트에서 일부 이벤트 트리거 (어쩌면 블러?)에서 DOM을 조작하기 위해 자바 스크립트 핸들러를 작성해야 할 것이다.

반면에 텍스트를 데이터베이스에 저장하기 전에 텍스트의 제목을 지정하려는 경우 서버에서 텍스트의 제목을 지정하려고합니다. 업데이트중인 레코드를 지정하기 전에 사용자 입력 텍스트를 titelized 버전으로 변환하십시오.

0

당신은 또한 당신의 컨트롤러에이 방법을 시도 할 수 있습니다 :

user_params[:university] = user_params[:university].titleize 
@user = User.create!(user_params)