繁体   English   中英

从Rails中的模型实例获取数据

[英]Getting data from an instance of a model in Rails

我对Rails很陌生,现在迷路了。 我一直在关注博客教程 ,利用这些信息来创建另一个类似的应用程序。

好吧,我想要的(SQL语言)是:
select planned from hourplans where area_id = 2 and time = '9:00:00'

我的应用程序中有4个模型(基本上是博客教程中的应用程序在同一网站上放置了两次):

生产(可以有多个停机时间) [生产] --1 ------- N-- [停机时间]
class Production < ActiveRecord::Base has_many :downtimes, dependent: :destroy validates :items, presence: true end

class Downtime < ActiveRecord::Base belongs_to :production end


区域(可以有多个小时计划) [区域] --1 ------- N-- [小时计划]
class Area < ActiveRecord::Base has_many :hourplans, dependent: :destroy validates :title, presence: true end


class Hourplan < ActiveRecord::Base belongs_to :area end

因此,例如存在一个从9:00到10:00的生产对象,生产具有一个名为“ area”的字段,其值是“ area2”。
并且还有一个名为“ Area2”的Area对象,该对象与对象Hourplan有关,该对象的Hourplan具有一个称为“ planned”的字段,该字段的值是从9:00到10:00的已计划项(例如600)。 。
我如何从9:00到10:00将这些数据提取到作品的展示页面中?

我无法转移。

我尝试了类似的东西:
<% area2.hourplans.where("time = 09:00").select(:planned) %>

但这没用。

然后我以为我必须先将模型的对象设置为变量,所以我尝试了:
<% area = Area.find_by title: @production.area %>

但我就是不明白。 我不知道这是否有效。 但是,现在我该如何制定小时计划? 这些与地区有关

我也尝试过:
<%= Hourplan.select("planned").where("time = 9:00 AND area_id = 2") %>
那给了我:
#<Hourplan::ActiveRecord_Relation:0x50c23e0> ,我不知道这意味着什么,我想我应该从SQL表中得到一个值,例如'600'

我希望我能使自己清晰易懂。 如果您有任何疑问,请告诉我。 我很感谢您的帮助,我正在浏览官方指南,但找不到真正想要的东西。

您可以尝试更换

<%= Hourplan.select("planned").where("time = 9:00 AND area_id = 2") %>

通过

<%= Hourplan.where("time = '9:00' AND area_id = 2").first.planned %>

实际上, where方法返回一个关系,该关系(大致)表示SQL查询的结果。 但是您知道SQL查询可能返回也可能不返回一行。 通常,返回几行。 这就是为什么要添加first ,以仅获取第一个Hourplan对象的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM