2013-04-25 298 views
0

我一直在寻找关于如何为Ruby on Rails进行查询的在线信息,并且我可以找到如何构建查询的信息,但不是我放置物理代码的位置。我对Ruby on Rails非常陌生。Ruby on Rails SQlite 3数据库查询

我有一个名为story的数据库,它有我制作的标题和内容列。我有一个页面用于输入标题和内容,然后存储到数据库中,然后我有一个显示数据库所有内容的页面,但我不明白如何执行查询来查找我们说的“一条记录具有包含特定单词或短语”

<%= @story.content %> 

所以我的理解是在屏幕上显示的内容,做我只是做了查询,同样的事情,内容或标题?

+1

您是否创建了任何控制器?你不能像在PHP中那样在页面上执行SQL(不应该)。 – woz 2013-04-25 15:10:24

+0

woz是正确的。您的查询属于您的控制器,这些控制器会公开显示在视图中的数据。 – 2013-04-25 15:21:29

回答

1

根据您的查询,请在您的控制器写这样

@stories = Story.where("stories.content IS NOT NULL") #Records those has a content 
@stories = Story.where("stories.title LIKE%a_certain_word_or_phrase%") # Records that contains a certain word or phrase 

如果你想拿起唯一一个从DATABSE可以用户。首先。去年例如recoed

@sotory = Story.where("stories.content IS NOT NULL").first #first item which has content 
@sotory = Story.where("stories.content IS NOT NULL").first #last item which has content 

你也可以通过ID找到像

@story = Story.find(1) # finds the record with id = 1 

等等......

我觉得你需要一个好的tutorial.As你是一个新手,请结帐Ruby on Rails Guides: Active Record Query Interface

3

在轨活动记录使用不直接SQL查询

这里的解释是一个很好的链接......

http://guides.rubyonrails.org/active_record_querying.html

例如可以说你有岗位模型,你想

  1. 指数的所有帖子,然后使用

    @posts = Post.all

  2. 你想显示具体的岗位,根据ID找到它

    @post = Post.find(PARAMS [:编号])

  3. 创建由

    @post一个新的职位= Post.new

+0

在我的应用程序/模型下我有一个story.rb,它包含从ActiveRecord继承的故事类。你说我需要做@ story = Story.all,但我在哪里放?我是否将它放在页面的视图中,以便它在页面上发布?或者我把它放在课堂上?我不明白我是如何得到页面上显示的查询 – jordankoal 2013-04-25 19:46:17

+1

您必须在控制器索引操作中放置'@story = Story.all',并调用'@story'以查看索引故事 – Magnum 2013-04-26 06:26:16