2011-02-22 83 views
1

創建控制器方法我在我的/app/views/password_resets/new.html.erb視圖以下形式Rails的形式不調用上POST

<% form_tag password_resets_path do %> 
    <label><%= t(:email) %>:</label><br /> 
    <%= text_field_tag "email" %><br /> 
    <br /> 
    <%= submit_tag t("reset_password") %> 
<% end %> 

與含有創建方法的控制器稱爲PasswordResetsController沿着:

def create 
    @user = User.find_by_email(params[:email]) 
    if @user 
    @user.deliver_password_reset_instructions! 
    self.notice = t("password_reset_instructions_are_mailed") 
    redirect_to root_url 
    else 
    flash[:error] = t("no_user_found") 
    render :action => :new 
    end 
end 

當我去/ password_resets /新,填寫表格,並提交,create方法是否正確調用,因爲PasswordResetsController ::創建()當POST恰巧/ password_resets方法被調用。

然而,當我把形式另一種觀點認爲,比如說,/app/views/test/index.html.erb,填寫表格,提交的,我得到

未知的動作

對索引無響應。操作: access_forbidden,admin_created? check_roles,創建,編輯,find_order, 包括,新,role_requirements, role_requirements =,標題,標題=和 更新

任何想法,爲什麼移栽形式不加工?

+0

你是如何在你的路線中定義你的password_resets_path的? – christianblais 2011-02-22 17:57:55

回答

0

原來這個問題與SSL有關。這顯示在日誌中:

過濾器鏈暫停爲[:ensure_proper_protocol] rendered_or_redirected。

頁面上我需要SSL的形式,而Rails不喜歡我將表單從SSL頁面提交到非SSL頁面。所以,作爲一種解決方法,因爲我使用ssl_requirement,我只是把

ssl_required :all 

在password_resets控制器,現在工作的事情。