如何使用与我没有保存到数据库的对象相关的数据?

我需要使用他在表单中输入的用户数据,但不保存它。

我在我的User模型中添加了属性访问器:

attr_accessible :paypal_email, :first_name, :last_name attr_accessor :first_name attr_accessor :last_name 

但是如何在用户提交表单后使用它呢? 我需要validation帐户详细信息,但没有保存,所以我需要在控制器中使用

  @user.first_name and @user.last_name 

我的validation操作:

  def verify @user = User.find(params[:user_id]) require 'httpclient' require 'xmlsimple' clnt = HTTPClient.new header = {"X-PAYPAL-SECURITY-USERID" => "№№№№№№№№", "X-PAYPAL-SECURITY-PASSWORD" => "333333333", "X-PAYPAL-SECURITY-SIGNATURE" => "3333333333", "X-PAYPAL-REQUEST-DATA-FORMAT" => "NV", "X-PAYPAL-RESPONSE-DATA-FORMAT" => "XML", "X-PAYPAL-APPLICATION-ID" => "APP-2J632856DC989803F" } data = {"emailAddress" => @user.paypal_email, "firstName"=> @user.first_name, "lastName" => @user.last_name, "matchCriteria" => "NAME", "requestEnvelope.errorLanguage" => "en_US"} uri = "https://svcs.paypal.com/AdaptiveAccounts/GetVerifiedStatus" res = clnt.post(uri, data, header) @xml = XmlSimple.xml_in(res.content) if res.status == 200 if @xml['accountStatus']!=nil account_status = @xml['accountStatus'][0] if account_status == "VERIFIED" redirect_to :back flash[:success] = "Your account is verified" else redirect_to :back flash[:error] = res.content end else redirect_to :back flash[:error] = res.content end else flash[:error] = "Oops! Can't conntect to PayPal" end end 

和错误:

  Invalid request parameter: lastNamelastName 

我怎么能这样做?

在您的情况下,您应该去form_tag。 form_tag用于上载与任何模型对象无关的详细信息。

如果我正确理解你的问题,这很简单。

您希望validation由表单(HTML)页面输入的first_name和last_name数据。

让我们说,您已将html表单中相应输入字段的名称命名为form_first_name和form_last_name。

您可以通过分别在控制器内使用params [:form_first_name]和params [:form_last_name]来访问它们。