2012-10-13 22 views
0

我在我的Rails 3應用程序中使用form_tag未綁定到任何模型的表單。據我所知(儘管請糾正我,如果我錯了),這幫助不具有相同的環境衛生益處的模型綁定form_for幫手,所以我手動殺毒所有輸入到表格。「未定義方法`字節大小爲零:NilClass」出現在表單輸入與消毒

這裏是我的控制器(只是基礎知識):

include ActionView::Helpers::TextHelper 

class MyController < ApplicationController 

    localVariable = params[:my_form_param].to_s 

    localVariable = strip_tags(localVariable) 

    localVariable = sanitize(localVariable) 

end 

當字符,如西裏爾字母,斯堪的納維亞的字符,等等,都包含在表單字段出現問題。返回以下消息:

undefined method `bytesize' for nil:NilClass 

我已經收窄至strip_tagssanitize方法,但我真的需要使用它們刪除錯誤的輸入。我試着轉移的to_s方法,以及每個方法(如strip_tags (localVariable.to_s)),但沒有運氣 - 我敢肯定的形式將工作的唯一方法是通過完全註釋掉這兩條線(其中,正如我所說,是我不想做的)。

任何人有對這個有什麼想法?是否有其他的方法,我可以使用,銘記我不使用的模型在這裏,所以使用form_for可能會有點過分?

謝謝!

回答

0

我想我解決了這個問題,同時使用馴Shlash的意見,並通過黑客的代碼位。

代碼的順序也似乎是重要的 - 做一個strip_tags,然後sanitize,然後最後加入to_str方法,如下所示:

include ActionView::Helpers::TextHelper 

    class MyController < ApplicationController 

     localVariable = params[:my_form_param].to_s 

     localVariable = strip_tags(localVariable) 

     localVariable = sanitize(localVariable) 

     localVariable = localVariable.to_str 

    end 

錯誤信息不再出現。

2

這似乎是相同的,但該報告對軌道here

應該使用to_str方法而不是to_s,即解決:

localVariable = params[:my_form_param].to_str 
相關問題