私は2つのモデルを持っています。
var self = {
User: sequelize.define('user', {
id: {type: Sequelize.INTEGER,primaryKey: true,autoIncrement: true},
name: {type: Sequelize.STRING,allowNull: false}
}),
Role: sequelize.define('role', {
id: {type: Sequelize.INTEGER,primaryKey: true,autoIncrement: true},
name: {type: Sequelize.STRING,allowNull: false}
})
}
それらの間の関連付けも指定しました。
self.User.belongsTo(self.Role);
コントローラー user.js の一部:
list: function(req, res){
models.User.findAll({offset: offset, limit: limit}).success(function (users) {
if (req.params.format == 'html') {
res.render('admin/user/list.html', {
title: 'Users',
layout: layout,
users: users
});
} else if (req.params.format == 'json') {
res.json(users);
}
}
ビュー list.html で:
<% users.forEach(function(user){ %>
<tr>
<td><%= user.id %></td>
<td><a href="/admin/user/<%= user.id %>/show.html"><%= user.name %></a></td>
<td><%= user.getRole().name %></td>
</tr>
<% } %>
/list.html を呼び出すと、各ユーザーのページで未定義のロールが取得されます。
/list.json を呼び出すと、次のようになります。
[{"id":1,"name":"user1", "role_id":1},
[{"id":2,"name":"user2", "role_id":1},
[{"id":3,"name":"user3", "role_id":2},
...
list.html および json 応答で各ユーザーの役割を取得するにはどうすればよいですか? それとももっと良い方法があるのでしょうか?
ありがとう。