从RoR数据库中搜索和删除数据

时间:2015-07-10 20:35:03

标签: ruby-on-rails ruby

我是RoR的初学者。以前的RoR开发人员已将一些工作移交给我,他现在还没有。我在数据库中有几个用户,如何获得与每个用户以及单个用户相关的所有信息?此外,该应用程序提供添加朋友的功能,因此,许多用户也会添加许多朋友。如何搜索他们的朋友以及如何删除单个朋友?我知道这些问题可能非常基础,但是,我是RoR的初学者,从Java配置文件切换。

一些细节:

$ ruby -v
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-linux]

$ rails -v
Rails 4.1.4

任何帮助都将受到高度赞赏。

3 个答案:

答案 0 :(得分:0)

我最好的建议是阅读Active Record BasicsActive Record Query Interface Ruby on Rails指南。

以下是您需要做的总结。请注意,这假设您的用户存储在whatever.sh模型中。

  • 按ID:User
  • 查找用户
  • 通过电子邮件找到用户:User.find(id)
  • 为所有用户建立关系:User.find_by(email: email)
  • 使用特定电子邮件为用户建立关系:User.all

请注意,在您对数据进行操作之前,关系实际上并不会加载任何数据(例如User.where(email: email))。

答案 1 :(得分:0)

根据我的经验,看到问题的直接示例有助于我理解,所以我会用一些例子回答你的几个问题。

让我们说你的模特课是"用户"并且该表被称为"用户"。然后要获得所有用户的数组,您可以这样做:

allUsers = User.all
allUsers.each do |user|
    puts user.name
    # do whatever else you want with the user instance
end

要获得单个用户,您可以执行以下操作:

user = User.where("id" => 1)[0]

注意:[0]的原因是因为User.where(...)返回一个数组。

如果您有特定用户的多个条件,则可以执行以下操作:

user = User.where("id" => 1, "email" => "blah@blah.com")[0]

希望这是一个好的开始。但是您可以在这里找到您需要的大多数查询:
Active Record Query Interface

答案 2 :(得分:0)

You can first exercise this with the rails console.
If you can get the results of all the users information by typing
1.User.all
If you retrieving a specific user; you give a command like:
2.User.first or User.find(n) where n => 1,2,3,..,n.
If you destroying a specific user;you can give command like:
3.User.first.destroy or User.find(n).destroy where n=>1,2,3,...,n
If you can search for the user's friend, you give a command as
4.User.find_by(name:'XYZABC') where 'XYZABC'=> name of the user's friend.