2011-11-14 6 views
2

나는 Haml과 함께 Padrino로 곧장 가서 Ruby를 배우게되었습니다. 대부가 문서의 대부분 Padrino 폼 헬퍼 및 폼 빌더 사용하기 - 시작하기

내가 사물이 작동하는 방식을 볼 수 검색 할 수있는 샘플을 찾고 루비 /시나 등의 지식에 대한 높은 수준의 ...

을 가정합니다. 한 가지 구체적인 시나리오는 간단한 양식을 작성하는 것입니다. 내 메인 (색인) 페이지에서 버튼으로 "가입"입력란을 원합니다. 내보기에서

#app.rb 
... 
get :index, :map => "/" do 
    @user = "test" 
    haml: index 
end 

get :signup, :map => "/signup" do 
    render :haml, "%p email:" + params[:email] 
end 
... 

는 :

#index.haml 
... 
#signup 
    -form_for @user, '/signup', :id => 'signup' do |f| 
    = f.text_field_block :email 
    = f.submit_block "Sign up!", :class => 'button' 
... 

이 작동하지 않습니다. /signup에있는 render은 아무 것도하지 않습니다.

참고, 내 모델 등을 정의해야한다는 것을 알고 있습니다 ...; 그러나 나는 그걸 배우기 위해 건물을 짓고 있습니다.

내가 여기서 뭘 잘못하고있는 지 알려주지 않고 양식을 사용하는 상당히 완성 된 Padrino 샘플 앱 (블로그 샘플은 Padrino의 표면적 부분 만 포함)을 좋아합니다.

위대한 Padrino 샘플은 어디에서 찾을 수 있습니까? :-)

편집

아래의 대답은 더 샘플에서 저를 가리키는에 도움이되었다. 그러나 위의 코드에서 잘못된 점을 발견하지 못했습니다.

나는 약간 내 해킹이 변경되었습니다 그리고 난 아직받지 못하고있어 :email PARAM이 제대로 전달 :

#index.haml 
... 
    #signup 
    - form_for :User, url(:signup, :create), :method => 'post' do |f| 
     = f.text_field_block :email 
     = f.submit_block "Sign up!" 
...  

#signup.rb 
... 
post :create do 
    @user = User.new(params[:email]) 
    ... 
end 

편집 추가 모델 :

#user.rb 
class User 
    include DataMapper::Resource 
    property :id, Serial 
    property :name, String 
    property :email, String 
    ... 
end 

을이 실행되면, params[:email]은 항상 nil입니다. 나는 이것을 다른 샘플들과 비교해 보았는데, 내가 잘못하고있는 것을 볼 수는 없다. 도움!

답변

2

당신은 여기에 몇 가지 예를 들어 사이트 찾아 볼 수 있습니다 : https://github.com/padrino/padrino-framework/wiki/Projects-using-Padrino

아니면 여기 padrinorb.com의 소스를 검색 할 수는 : padrino g admin 당신이 작품을 구성하는 방법을 참조해야하는 위치 : https://github.com/padrino/padrino-web

가장 좋은 방법은 또한 관리자를 생성하는 것입니다 . 당신이 그렇게 당신이 필요로 이메일을 얻을 당신이 form_for :user PARAMS을 사용하고 있기 때문에 그래서 당신의 컨트롤러에 당신이 :post

post :signup, :map => "/signup" do ...

params[:user]에있는을 :get을 변경해야합니다 :method => :get|:put|:delete를 지정하지 않는

태그 form

은 기본적으로 post 작업을 수행 to puts params[:user][:email]

+0

'Projects-using-Padrino'에 대한 링크는 매우 유용했습니다. 나는 수색하고 찾았고 그것을 결코 보지 못했다.참고'admin'은 partials를 사용하고 나는 (아직) 그렇게하지 않았기 때문에 도움이되지 않았습니다. 나는 아직 숲에서 나가지 못했지만 당신의 대답은 도움이되었습니다. 감사. – tig

+0

또한,'render'는': signup' 핸들러에 있습니다. 내가 가지고있는 문제는'params [: email]'은 항상'nil'이다 ... – tig

+0

간단한 'text_field : email'로 시도하자. – DAddYE