2012-09-21 3 views
-1

빠른 레일즈는 여러분의 도움을 사랑한다고 생각합니다. 대답과 모든 것을 둘러 보면서 나는 해결책이라고 생각하는 것에 대해 좀 더 복잡한 측면에서 조금 보인다. 두 페이지는 모델 (사용자)과 각 페이지에서 저장 될 때 다른 속성을 업데이트하는 양식을 사용합니다. 다른 페이지에서의 조건부 유효성 검사 - 레일

  • 하나는 내가 조건부 할 수있는 방법은 자신의 퀴즈의 응답 (유효성 검사가 300 최대 문자입니다)

를 업데이트

(검증 암호의 존재이다) 자신의 암호 정보를 업데이트 양식을 제출할 때 각 페이지에 유효성 확인이 표시되도록하려면 어떻게해야합니까? 두 가지 별도의 조치가 필요합니까? 이러한 작업을 양식 제출에 연결하려면 어떻게합니까?

사용자 컨트롤러

def update 
    @user = User.find(params[:id]) 
    if @user.update_attributes(params[:user]) 
    flash[:success] = "All is updated" 
    sign_in @user 
    redirect_to @user 
    else 
    render 'edit' 
    end 
end 

양식

<p><h3>Linked-In Optimization</h3></p> 
<%= form_for(@user) do |form| %> 
    <p><%= form.label :linkedin, 'Please copy and paste your Linked-In profile here (575 chars max.)' %></p> 
    <p><%= form.text_area :linkedin %></p> 
    <%= form.submit 'Save' %> 
    <img class="linkedin" src="/linkedin.png"> 
<% end %> 
+0

질문이 명확하지 않습니다. "보기 페이지"와 컨트롤러 코드 모두를 붙여 넣을 수 있습니까? –

+0

네가 맞아, 나는 분명히해야만했다. 어쨌든 아래의 도움에 감사드립니다. 내가 한 일은 다음과 같습니다.보기에서 : <% = form_for (@user, : url => update_linkedin_user_path (@user)) do | f | %>와 경로에서 "resources : users"아래에 "update_linkedin ', : on => : member"를 추가했습니다. (또한 컨트롤러에서 작업을 만들었습니다.) – D060703

답변

0

, 일을 간단하게 두 개의 별도의 컨트롤러 액션을 사용하려면 :

다음은 일반적인 업데이트 작업과 형태이다.

당신이 모델에서 필요한 검증을 추가 한 경우이

<%= form_for(@user, :url => update_password_user_path(@user)) do |f| %> 

을, 양식이 새로운 경로를 제출 링크, 오류 메시지는 각각의 형태에 나타납니다.

+0

도움을 주셔서 감사합니다! 알았다. – D060703