2010-09-10 44 views
0

我有一個奇怪的問題。我在我的rails應用程序中使用簡單的驗證碼。如果我在網頁中使用一個驗證碼,我沒有任何問題。但是我有一個在一個頁面中使用三(3)個表單的方案,其中所有三個表單都將具有驗證碼。所以當我刷新頁面時,三種形式的驗證碼數據是相同的。簡單驗證碼的問題

當我們來到數據庫時,一旦頁面被加載,將創建一個特定id的captcha值,如果我們刷新頁面,不使用驗證碼,記錄得到更新,而不是創建另一個記錄,我在兩個選項卡中打開網頁,並在第一頁中提交表單。它會拋出一個例外說「無效驗證碼」

任何人都可以讓我知道如何處理單個頁面中的多個驗證碼。我正在使用simple_captcha插件。

感謝提前

回答

1

我不能使用一個以上的驗證碼爲一個頁面中看到任何一點。 (我假設您的兩個表單都將同時提交。)因爲驗證碼的全部用途是爲了避免自動提交表單。

第二點是,我不確定爲什麼你想在一個頁面中的3個表單。您可以考慮使用一種形式並在控制器端相應地過濾識別參數。

糾正我,如果我錯了

感謝

sameera

0

你能解釋一下你爲什麼需要新的記錄,而不是更新的(而清爽的頁面)。順便說一下,我在simple_captcha處理的頁面上遇到了相同的問題。而我的問題在於重複使用了simple_captcha的方法show_simple_captcha。它在這種情況下導致重複的數據庫插入。並且Ive做了細微改動插件來解決這個問題:改爲

# Line 73 in lib/simple_captcha/view_helpers.rb (in show_simple_captcha method) 

options[:field_value] = set_simple_captcha_data(simple_captcha_key, options[:code_type]) 

options[:field_value] = options[:multi] ? simple_captcha_key : set_simple_captcha_data(simple_captcha_key, options[:code_type]) 

現在我用show_simple_captcha(:multi => true)生成不包含數據庫的擊球驗證碼:

<!-- For first captcha on page --> 
<%= show_simple_captcha(:object => :foo) %> 

<!-- For next captchas on same page --> 
<%= show_simple_captcha(:object => :bar, :multi => true) %>