2012-12-26 52 views
0

我繼承了一個沒有服務器端表單驗證的Rails 2.2.2項目,所以我試圖添加它。從不同的控制器方法訪問POST參數

有沒有辦法將POST變量從submit_request方法傳遞迴註冊方法(也在下面)?

所有我試圖做的是重新填充任何已進入,與表單驗證錯誤消息一起形式:

class LoginController < ApplicationController 

## The controller that displays & processes the form 



# Form view 
def signup 
    @hide_logout = "YES" 
end 


#Form validator/processor 
def submit_request 
    @hide_logout = "YES" 
    @name = (params[:name] ? params[:name] : "") 
    @email = (params[:email] ? params[:email] : "") 
    ... 
    ## Validate posted values here 

    ## Build error message, if needed 
    if(error_str !="") 
    flash[:warning] = error_str 
    redirect_to :controller => "login/signup" and return 
    end 

    end 
end 

然後,在表單視圖搶POSTED值和填充表單:

<%= text_field_tag("name", (@name !=nil ? @name.to_s : nil), :size => 40) %><br><br> 

回答

1

我猜你只是想顯示註冊頁面這麼做:

def submit_request 
    @hide_logout = "YES" #why don't you use boolean here? 
    @name = params[:name] || "" 
    @email = params[:email] || "" 
    ... 
    ## Validate posted values here 

    ## Build error message, if needed 
    unless error_str.blank? 
    flash[:warning] = error_str 
    render :signup and return 
    end 
end 

獎金:我更正了一些代碼語法以使其更輕。

+0

太好了。這就對了。謝謝。 – Slinky

+0

必須從render:call中刪除「並返回」以避免語法錯誤 – Slinky