我对 Ruby on Rails 比较陌生,我觉得我在这里做错了什么。我正在设置支付模式,但不知道如何处理可访问的属性。
我的 cash_transaction 模型有:
attr_accessible :billing_address_line_one, :billing_address_line_2, :billing_city, :billing_country, :billing_post_code, :payee_first_name, :payee_last_name, :card_expiry, :card_type
attr_accessor :card_number, :card_verification
好的,所以我想提交表单并验证,如果付款通过,将来可能会保存到数据库中。
如果我离开:card_number, :card_verification
,attr_accessible
Rails 会给出错误:
*未知属性card_number*
这很公平,因为我不想将它保存在我的数据库中。
当我尝试:
@cash_transaction = current_user.cash_transactions.build(params[:cash_transaction])
当这些参数不在attr_accessible
.
我已经解决了这两个错误:
@cash_transaction = current_user.cash_transactions.build(params[:cash_transaction].except(:card_number, :card_verification))
@cash_transaction.card_number = params[:cash_transaction][:card_number]
@cash_transaction.card_verification = params[:cash_transaction][:card_verification]
但这与使用哈希中包含的那些参数进行构建是一样的,所以我在欺骗它?
做什么?