我有两个控制器UsersController
和TransactionsController
,我想知道在一个视图上显示来自两个控制器的数据的最佳做法是什么。我应该在每个相应的视图目录下创建局部分,然后在单独的视图中将它们拼接在一起,还是在布局下创建一个视图?我离开了吗?
修改
在我的“视图”文件夹中:
设计
(设计默认视图在这里)
布局
_header.html.erb
application.html.erb
交易
_form.html.erb
index.html.erb
delete.html.erb
edit.html.erb
new.html.erb
用户
index.html.erb
我想在根页面上显示一个表中的所有用户以及另一个表中的另一个用户的事务。
答案 0 :(得分:0)
如果您尝试在管理页面中显示此数据,那么您的代码应该像这样
Controllers:
admin_controller.rb -> with action users_transactions
views/admin
users_transactions.html.erb -> loop on users showing the partial of user
views/transcations
_user_transactions.html.erb
views/users
_user.html.erb -> here you will show how a single user will show including the partial of his transactions.
答案 1 :(得分:0)
如果交易属于用户,则默认情况下您应该能够访问用户页面上的交易数据(如果模型和迁移设置正确)。如果您的用户index.html.erb将成为您的根页,那么这应该可以解决您的问题。
答案 2 :(得分:0)
所以我猜这一切都取决于'什么'你想要展示和'如何'。
保留视图/布局Dir,了解它的创建方式,存储布局。通常,交叉视图部分保存在views / shared Dir中,该Dir存储可以从其他目录呈现的部分。在你的情况下形成交易/ *&用户/ *。
明智地计划之前在那里添加文件......也许你真的不需要它;)