2013-05-09 20 views
0

我在Rails控制器中設置了三個Cookie,以便在訪問者登陸網站時瞭解一些有關訪問者的信息。當他們提交表單時,我需要將這三個cookie的值與其他表單數據一起保存在數據庫表中。我已經運行遷移來添加額外的列,但我沒有找到任何有助於實際保存表單提交值的任何內容。在Rails的表單過程中,我可以使用其他數據保存cookie值嗎?

有誰知道這是可能做到的,如果是這樣,我該怎麼做?

def process_contact_us 
@form = Form.find(1)  
@contact_submission = ContactSubmission.new(params[:contact_submission])  
if @contact_submission.save 
    if @contact_submission.newsletter 
    begin 
     logger.info "Sending autoresponder" 
     et = ExactTarget.new(ApplicationController::ET_USER,ApplicationController::ET_PASS, true) 
     et.add_subscriber_with_options({ 
     "Email__Address" => @contact_submission.email, 
     "First__Name" => @contact_submission.first_name, 
     "Last__Name" => @contact_submission.last_name, 
     "Address" => @contact_submission.address, 
     "Address__2" => @contact_submission.address2, 
     "City" => @contact_submission.city, 
     "State" => @contact_submission.state, 
     "Zip__Code" => @contact_submission.zip, 
     "TravelNewsletter" => "Yes" 
     }, ApplicationController::ET_LIST_ID) 
     et.single_send(@contact_submission.email, ApplicationController::ET_EMAIL_ID, "", "")    
     logger.info "Added to ET" 
    rescue 
    end 
    end 

    Notifier.deliver_contact_us(@contact_submission, @form) 

    session[:form] = nil 
    redirect_to "/contact-us/thank-you" 
else 
    flash[:form] = @contact_submission 
    flash[:notice] = @form.error_message.blank? ? "First Name, Last Name, and Email are all required fields." : @form.error_message 
    redirect_to :back 
end 

+0

什麼您試圖保存的型號名稱?你可以添加你在提交時執行的控制器動作方法嗎? – 2013-05-09 16:57:34

+0

型號名稱是聯繫人提交。我會看看我是否可以編輯上面添加控制器操作。 – lolthai 2013-05-09 17:14:55

回答

1

將信息保存到contact_submission對象,你應該設置它的值初始化後,從表單值了,但是你保存它之前:

@contact_submission = ContactSubmission.new(params[:contact_submission]) 
@contact_submission.super_cool_value = cookies[:super_cool_value] 
if @contact_submission.save 
    #.. continue on 
+0

謝謝!這就像一個魅力! – lolthai 2013-05-09 18:29:59

相關問題