我遇到了嵌套屬性和設計問題。與How do I use nested attributes with the devise model類似的問題。 至於我可以告訴我已經把一切都設置爲在這裏推薦: Override devise registrations controller使用設計嵌套屬性時的質量分配警告
我已經設置了關聯的用戶和訂閱,我有"accepts_nested_attributes_for"
,並列入attr_accessible
的:subscriptions_attributes
,但我得到Devise控制器的警告。
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,:recoverable, :rememberable, :trackable, :validatable
validates_presence_of :first_name, :last_name
has_many :subscriptions
accepts_nested_attributes_for :subscriptions
attr_accessible :first_name, :last_name, :email, :password, :password_confirmation, :remember_me, :subscriptions_attributes
...
end
-
class Subscription < ActiveRecord::Base
belongs_to :user
validates_presence_of :user_id, :chargify_subscription_id, :chargify_product_handle
attr_accessible :user_id, :chargify_subscription_id, :chargify_product_handle
...
end
色器件/註冊/ new.html.erb:
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<p><%= f.label :first_name %><br />
<%= f.text_field :first_name %></p>
...
<%= f.fields_for :subscription do |s| %>
<p><%= s.label :chargify_subscription_id %><br />
<%= s.text_field :chargify_subscription_id %></p>
...
我得到以下警告:
Started POST "/users" for 127.0.0.1 at Sat May 14 12:38:49 -0700 2011
Processing by Devise::RegistrationsController#create as HTML
Parameters: {"commit"=>"Sign up", "authenticity_token"=>"wNZhZgIhYm9CpZfhvDiRBqaJseoO8QvR0Mk9VIybhcI=", "utf8"=>"✓", "user"=>{"password_confirmation"=>"[FILTERED]", "last_name"=>"9", "subscription"=>{"chargify_product_handle"=>"medium", "chargify_subscription_id"=>"123"}, "password"=>"[FILTERED]", "first_name"=>"9", "email"=>"[email protected] com"}}
WARNING: Can't mass-assign protected attributes: subscription
我我已經嘗試在中使用subscription_attributes
(單數)但這不起作用。
對於我可能會做錯的任何建議? 謝謝。
您是否嘗試過設置'attr_accessible:subscription'? – ecoologic 2011-05-14 22:34:19
@ecoologic - 在'Devise :: RegistrationsController#create'中給出一個未知屬性:訂閱錯誤。也嘗試'attr_accessible:訂閱',但得到我原來的錯誤。 – stupakov 2011-05-14 23:06:54