Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails ActiveRecord::关系错误_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails ActiveRecord::关系错误

Ruby on rails ActiveRecord::关系错误,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,来自Rails的错误,这对您有意义吗 <%= @permission.inspect %> outputs: [#<Permission project_id: 3, role_id: 2, user_id: 13>] <%= Role.find(@permission.role_id) %> undefined method `role_id' for [#<Permission project_id: 3, role_id: 2, user_id

来自Rails的错误,这对您有意义吗

<%= @permission.inspect %> outputs: [#<Permission project_id: 3, role_id: 2, user_id: 13>]

<%= Role.find(@permission.role_id) %>

undefined method `role_id' for [#<Permission project_id: 3, role_id: 2, user_id: 13>]:ActiveRecord::Relation
输出:[#]
[#]:ActiveRecord::Relation的未定义方法“角色id”
由于某些原因,这也不起作用:
@permission.role.name


有什么想法吗?谢谢

@权限是一个数组,因此您需要对其进行迭代

<% @permission.each do |perm| %>
  <%= Role.find(perm.role_id) %>
<% end %>

@权限是一个数组,因此需要对其进行迭代

<% @permission.each do |perm| %>
  <%= Role.find(perm.role_id) %>
<% end %>

@permissions
是一个集合(数组)。请尝试
@permissions。首先。角色\u id

@permissions
是一个集合(数组)。请尝试
@权限。首先。角色id

谢谢。但许可证不应返回多个记录。有没有一种方法可以在Rails中获取var,从而指定它不是一个集合而是一个记录?现在我有:@permission=permission.where([“user\u id=?AND project\u id=?”,@user.id,@project.id])谢谢你,在这种情况下,正如辛加拉所说,
@permission=permission.where([“user\u id=?AND project\u id=?”,@user.id,@project.id])。首先
。这将返回权限对象,如果找不到匹配的行,则返回nil。谢谢。但许可证不应返回多个记录。有没有一种方法可以在Rails中获取var,从而指定它不是一个集合而是一个记录?现在我有:@permission=permission.where([“user\u id=?AND project\u id=?”,@user.id,@project.id])谢谢你,在这种情况下,正如辛加拉所说,
@permission=permission.where([“user\u id=?AND project\u id=?”,@user.id,@project.id])。首先
。这将返回权限对象,如果找不到匹配的行,则返回nil。谢谢。但许可证不应返回多个记录。有没有一种方法可以在Rails中获取var,从而指定它不是一个集合而是一个记录?现在我有:@permission=permission.where([“user\u id=?AND project\u id=?”,@user.id,@project.id])感谢suse@permission=permission.where([“user\u id=?AND project\u id=?”,@user.id,@project.id])。首先谢谢。。。如果数据库中只有1个匹配结果,它会返回数组吗?或者它总是一个数组?它是返回零或者你的对象不再是数组。但许可证不应返回多个记录。有没有一种方法可以在Rails中获取var,从而指定它不是一个集合而是一个记录?现在我有:@permission=permission.where([“user\u id=?AND project\u id=?”,@user.id,@project.id])感谢suse@permission=permission.where([“user\u id=?AND project\u id=?”,@user.id,@project.id])。首先谢谢。。。如果数据库中只有1个匹配结果,它会返回数组吗?或者它总是一个数组?它是返回零还是你的对象不再是数组