【发布时间】:2016-02-04 17:49:18
【问题描述】:
我有关系:
user.rb
has_one :account
account.rb
has_many :transactions
belongs_to :user
transaction.rb
belongs_to :account
如何在用户索引页面上的 Activeadmin 中创建一个链接来为该用户创建交易?抱歉,如果我的问题不是很清楚。
更新
admin/user.rb
show do
panel 'Платежи' do
table_for user.account do
column('accaunt', :acc_number)
column('balance', :balance)
column('Last payment date', :last_pay_date)
column('Next payment date', :next_pay_date)
column(link_to 'Add some money', new_admin_user_account)
end
end
end
搜索路线
new_admin_user_account GET /admin/users/:user_id/accounts/new(.:format) admin/accounts#new
edit_admin_user_account GET /admin/users/:user_id/accounts/:id/edit(.:format) admin/accounts#edit
admin_user_account GET /admin/users/:user_id/accounts/:id(.:format) admin/accounts#show
更新2 我在开始时将它移动到我想要的索引
index do
id_column
column :email
column :uid
column :username
column :email_notify
column :msg_notify
column :blocked
column do |user|
link_to 'Add some money', new_admin_user_account_path(user.id)
end
actions
end
我遇到了错误:
undefined method 'accounts' for #<User:0x000000139eb2c8>
确定是未定义的,用户拥有一个帐户。关系有问题。而且我认为即使这件事开始起作用,它也不会是我想要的。我需要类似new_admin_user_account_transaction_path(user.id)
【问题讨论】:
-
你在末尾缺少
_path和用户参数:new_admin_user_account_path(user) -
你能试试
column(:add) { |account| link_to 'Add some money', new_admin_user_account_path(account.user) }我不确定是否需要:add。 -
是的...我已经找到了。肯定为时已晚。但它出现了新的错误(
-
请使用最新信息更新您的问题。
-
很好,因为用户只有一个帐号。请参阅我更新的答案,您想为用户帐户创建交易,因此您的嵌套应该更改以反映这一点。