2011-07-27 2 views
0

저는 Rails를 처음 사용하고 있으며 이제는 Rails에 작은 프로젝트를 작성하려고합니다. 이 프로젝트의 일환으로 양식 Data (Password)를 처리하려고합니다. 입력 한 암호가 맞으면 내 양식이 내가 다른 HTML 페이지를 표시 할Ruby on Rails의 양식 데이터 처리

<form name="input" action="http://0.0.0.0:3000/submit/" method="get"> 

Password: <input type="text" name="password" /> 

<input type="submit" value="Login" /> 

입니다, 원래 암호가 데이터베이스에 저장되지 않으며, 단지 문자열에 대해 비교하는 것을 의미합니다. 나는 '컨트롤러 프로젝트 생성 레일'을 사용하여 컨트롤러와 뷰를 만들었습니다. 비밀번호 일치 코드는 'app/controllers'디렉토리의 'project_controller.rb'파일에 작성되어야한다고 생각합니다. 하지만 암호 일치를위한 코드를 작성하고 'routes.rb'파일에 URL을 매핑하는 방법은 무엇입니까? 'get'메소드가 'post'로 변경되면 필요한 변경 사항은 무엇입니까? 내 project_controller.rb 3 기능을 가지고있다

Foo::Application.routes.draw do 
    get '/form' => 'project#form' 
    get '/submit' => 'project#submit' 
    get '/logedin' => 'project#logedin' 
end 

여기처럼 모든 routes.rb의

답변

4

먼저 파일이 컨트롤러에 함수에 URL을 매핑 할 수 있습니다

라우팅의 기본 예이다 함수 에 매핑 여기

이 project_controller.rb의 예제 코드 인이 '포스트'에 '수의 변화에 ​​의해 게시 변경할 수 있습니다

,
class ProjectController < ApplicationController 
def form 
    #will render view/project/form.html.erb 
end 

def submit 
    if params[:password] == 'secret' 
     redirect_to '/logedin' 
    else 
     #you can redirect to form again 
     #or render the form again 
     render 'form' #render the view/project/form.html.erb 
    end 
end 

def logedin 
    render :text => 'you are loged in' 
end 

형태의 기능은/form.html.erb

메인 로직 제출 응용 프로그램 /보기/프로젝트에있는 기본보기를 렌더링합니다. 당신은 variabel caled 매개 변수를 사용하여 양식 데이터에 액세스 할 수 있습니다

코드는 직선입니다. 당신은 레일 가이드에 대한 자세한 내용을 알 수 있습니다 http://guides.rubyonrails.org/

+0

양식을 지정하고 라우트에 제출하는 것이 좋습니다. 오히려 컨트롤러에서 이름을 지정하고 동일한 이름으로보기를 지정하고 리디렉션하는 것이 좋습니다. 컨트롤러에서 알림을 표시합니다. –

+0

감사합니다. 코드가 정확하고 완벽하게 작동합니다. 그것은 나를 많이 도왔다. 다시 한번 감사드립니다. –

+0

예. 이것이 최선의 방법이 아니라는 것을 알고 있습니다. 당신은 도우미를 사용하여 양식을 사용하고 가능한 한 자원 경로를 사용해야합니다. 이 예제는 요청을 처리하고 그 요청을 함수에 전달하는 레일 메커니즘을 보여 주기만하면됩니다. – ahmy