【问题标题】:How to extract data from sqlite3 array in ruby on rails?如何从 ruby​​ on rails 中的 sqlite3 数组中提取数据?
【发布时间】:2016-11-29 22:03:16
【问题描述】:

如何从表单数组中获取数据:

[#<User id: 1, name: "John", surname: "Smith", dob: "2016-07-26", location: "Liverpool", created_at: "2016-07-26 08:50:01", updated_at: "2016-07-26 08:50:01">]

使用此代码从 sqlite3 数据库生成:

<%= User.select(User.all.select { |u| u.id == 1 }) %>

另外,有没有比所有方法更好的方法来提取选定的字段?无论我尝试过什么,都会返回一些长随机数,例如引用。

最后,我该怎么做:

u.id == 1

成为实时提供给该用户的任何 id,如下所示:

u.id == x (where x is any number)

干杯!

【问题讨论】:

  • 要从数据库集中选择特定字段,可以使用pluck
  • 我试过 并且它有效,但我想要一个函数通过传递刚刚注册并返回其名称的用户的 id 来自动完成此操作到屏幕
  • 好吧,那么如果您想在注册后立即显示名称,则可以使用User.last.name(尽管如果两个人同时注册并不安全。另一种方法是通过注册用户作为实例变量。当然你有一个控制器方法,你有@user.save 或类似的东西。所以只需在你的视图中显示'@user.name`

标签: ruby-on-rails arrays sqlite sqlite3-ruby


【解决方案1】:

我不知道我是否遗漏了什么,但我认为你想要的是 find:

@user = User.find(x) # x = given id

where(返回一组用户,而不仅仅是一个)

@user = User.where(id: x)

然后在您看来,您可以像这样使用用户:

<%= @user.name %> 

【讨论】:

  • 我的 users_controller 中有以下代码: def show @user = User.find(params[:id]) end 因为我在视图文件中收到了 find 或 find_by 不应出现的警告在视图内使用。但是当我写 User.show 时,我收到一个错误“无方法错误”,我不知道为什么。
  • 什么?我编辑了这个问题。看看如何使用它。如果您在控制器中加载它,则无需在视图中再次加载它。
  • 实时,当用户刚刚注册到我的应用程序时,我如何使用id返回他给的实际名称,如User.find(1).name,但id不会是,它将是当时产生的东西。我接受您的回答为“打勾”,但请帮助我解决我刚刚提出的问题。
  • 我试过 并且它有效,但我希望注册用户拥有这个并且我想让它自动
猜你喜欢
  • 2020-03-17
  • 1970-01-01
  • 2011-04-19
  • 1970-01-01
  • 2015-07-16
  • 2013-09-06
  • 1970-01-01
  • 1970-01-01
  • 2014-11-08
相关资源
最近更新 更多