【发布时间】:2019-09-08 07:41:39
【问题描述】:
我需要访问 fields_for 嵌套属性,但我不断收到此错误:
undefined method '[]' for nil:NilClass
对于线路:
braintree_account_params[:braintree_subscription_attributes][0][:plan_token]
我试过了:
params[:braintree_subscription_attributes][0][:plan_token]
params["braintree_subscription_attributes"][0]["plan_token"]
braintree_account_params[:braintree_subscription_attributes][0][:plan_token]
braintree_account_params["braintree_subscription_attributes"][0]["plan_token"]
params[:braintree_subscription_attributes]['0'][:plan_token]
params["braintree_subscription_attributes"]['0']["plan_token"]
braintree_account_params[:braintree_subscription_attributes]['0'][:plan_token]
braintree_account_params["braintree_subscription_attributes"]['0']["plan_token"]
没有一个有效
这个:
params[:braintree_account][:braintree_subscription_attributes].first[:plan_token]
错误:Undefined method first # for ActionController
我的参数:
Parameters: {"utf8"=>"✓", "braintree_account"=>{"first_name"=>"asfd", "last_name"=>"asfd", "braintree_subscription_attributes"=>{"plan_token"=>"4zfr"}}, "user_id"=>"1"}
强参数:
params.require(:braintree_account).permit(..., braintree_subscription_attributes: [:id, :plan_token])
型号:
class BraintreeAccount < ApplicationRecord
has_one :braintree_subscription
accepts_nested_attributes_for :braintree_subscription
end
class BraintreeSubscription < ApplicationRecord
belongs_to :braintree_account
end
如何访问plan_token?
【问题讨论】:
-
请提供您的完整控制器代码,因为解决方案就在那里。
-
您发布的
params,这就是您应该使用/调查以找到如何访问已发布的braintree_subscription。然后,此外:确保您的强参数不会阻止必填字段(但这似乎没问题)。
标签: ruby-on-rails ruby