将实例转换为另一种类型的实例

时间:2015-09-05 07:43:07

标签: ruby-on-rails ruby

在ASP.NET中,当我想向视图层发送模型实例列表时,我通过以下代码将它们转换为另一种类型(ModelView):

var userViewModels = users.select(new {
    Name = Name,
    UserName = Username
});

我这样做是因为我不想将所有用户模型数据(如密码)发送到视图层。我将此代码放在我的业务逻辑层中。

我正在使用AJAX,我正在通过JSON协议发送数据。 Ruby on Rails中执行类似操作的最佳做​​法是什么?

2 个答案:

答案 0 :(得分:1)

在RoR中,您只需将模型传递给您的视图。

此外,RoR中的视图可以直接从数据库访问(尽管不推荐)模型。所以"隐藏"这里的模型没有意义。

您可以将rails生成的脚手架视为接近最佳实践。

  1. 控制器用于从数据库中选择模型
  2. 视图用于向用户呈现模型
  3. 模型是存储业务逻辑的主要场所

答案 1 :(得分:0)

虽然可能不需要as dimakura pointed out,但您可以在使用select method查找时选择任意属性。你的例子最终会看起来像:

@users = User.select(:name, :username)