【发布时间】:2015-04-06 15:14:16
【问题描述】:
我有两个模型用户和广告。用户 has_many :adverts 和 Advert belongs_to :user。我使用accepts_nested_attributes_for 来更新广告属性。我就是这样做的:
class Users::RegistrationsController < Devise::RegistrationsController
@user = current_user
@user.update_attributes(adverts_attributes: [{id: ???, show_advert: false}])
end
为了让@user 能够更新广告,他需要有广告 ID。如果我只是输入 ID 广告,例如112 这很好用。我也试过这种方式:
Advert.all.each do |advert|
@advert = advert.id
end
仅适用于最旧的广告。
那么我如何访问广告 ID?
<Advert id: 356, created_at: "2015-04-06 00:54:29", updated_at: "2015-04-06 00:54:29", user_id: 66, show_advert: true>
<User id: 66, email: "xxx@xxx", encrypted_password: "xxx", reset_password_token: nil, reset_password_sent_at: nil, remember_created_at: nil, sign_in_count: 69, current_sign_in_at: "2015-04-04 22:25:47", last_sign_in_at: "2015-04-04 18:11:27", current_sign_in_ip: #<IPAddr: IPv4:xxx>, last_sign_in_ip: #<IPAddr: IPv4:xxx>, created_at: "2015-03-07 21:32:13", updated_at: "2015-04-05 01:40:29">
取消计划表格
<%= form_for(resource, :as => resource_name, :url => users_cancel_plan_path, :html => { id: 'cancel_plan', :method => :put }) do |f| %>
<%= f.submit "Cancel Subscription", class: "btn btn-danger" %>
<% end %>
【问题讨论】:
-
检查并在问题中添加您的参数。
-
@architgupta 我添加了参数
标签: ruby-on-rails ruby-on-rails-4 associations