Rails 3 SQL 查询选择与连接

2024-01-03

我的选择功能和连接有问题。

这是我当前的查询。

@search = Building.joins('INNER JOIN "floors" ON "floors"."building_id" = "buildings"."id" INNER JOIN "spaces" ON "spaces".floor_id = "floors".id')

但我想在我的选择中有更多选项来使用floors.number、space.number 我尝试过这个

@search = Building.select('buildings.name, floors.number, spaces.number).joins('INNER JOIN "floors" ON "floors"."building_id" = "buildings"."id" INNER JOIN "spaces" ON "spaces".floor_id = "floors".id')

在我看来我有错误..这是我的观点

<% for b in @building do %>

<div style='width:100%;margin-left:auto;margin-right:auto;margin-top:5px;'>

    <div style="float:left;width:50%"><%= b.name %></div>
    <div><%= link_to 'view', building_path(b) %></div>

</div>

<% end %>

这是我得到的错误

ActionController::RoutingError in Search_engine#show

Showing /Users/stephanebaribeau/Sites/cadifice/app/views/search_engine/show.html.erb where line #21 raised:

No route matches {:action=>"show", :controller=>"buildings", :id=>#<Building name: "gigi">}

Extracted source (around line #21):

18:     <div style='width:100%;margin-left:auto;margin-right:auto;margin-top:5px;'>
19:     
20:         <div style="float:left;width:50%"><%= b.name %></div>
21:         <div><%= link_to 'view', building_path(b) %></div>
22:         
23:     </div>
24: 

thanks

在我的选择上添加building.id、floors.id和spaces.id后,我尝试显示floors.number和spaces.number

<%= debug @building %>

give me

[#<Building id: 9, name: "234234">]

我不知道为什么我只有 2 个元素,也许是因为选择位于 Building.select 上?

thanks

-- 更新 14/09

这是我的新控制器

  @search = Building.select('buildings.id, buildings.slug, floors.id, spaces.id, buildings.name, floors.number, spaces.number').joins('INNER JOIN floors ON floors.building_id = buildings.id INNER JOIN spaces ON spaces.floor_id = floors.id')
  @search = @search.where("buildings.name like '%#{params[:building_name]}%'") if !params[:building_name].blank?
  #@search = @search.where("buildings.name like ?", params[:building_name]) if !params[:building_name].blank?
  if params[:space_type].present?
    @search = @search.where("spaces.space_type_id = ?", params[:space_type][:space_type_id]) if !params[:space_type][:space_type_id].blank?
  end
  @search = @search.where("floors.min_net_rent >= #{params[:floor_min_rent]}") if !params[:floor_min_rent].blank?
  @search = @search.where("floors.max_net_rent <= #{params[:floor_max_rent]}") if !params[:floor_max_rent].blank?

  @building = @search

我现在遇到的问题是调试给我的。距大楼仅 2 个场地。是因为 Building.select 的原因吗?我怎样才能把所有内容都放在我的选择字段中?

Thanks.


看看你的代码:

Building.select('buildings.name, floors.number, spaces.number)...

您没有选择建筑物id,所以当需要检索它时,Rails 有点迷失了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rails 3 SQL 查询选择与连接 的相关文章

随机推荐

  • 根据模板参数引用不同基类的函数

    include
  • CryptoJS AES-128-ECB 和 PHP openssl_encrypt 不匹配

    我有一些 PHP 代码 无法编辑 还有一个充满加密消息的数据库 key 297796CCB81D2553B07B379D78D87618 return encrypted openssl encrypt data AES 128 ECB k
  • 用于Linux进程管理的Python库[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 通过我的网络界面 我想启动 停止某些进程并确定启动的进程是否仍在运行 我现有的网站基于 Python
  • 在每个时区的凌晨 12 点运行 cron 作业

    所以我认为每个时区之间大约有30分钟的时间 我想运行我的脚本cron php每个时区的中午 12 点 午夜 我怎样才能做到这一点 我正在看这段代码 TZ UTC 7 root date mail root TZ CEST 7 root da
  • Django 错误 ---index() 缺少 1 个必需的位置参数:'pk'

    尝试打开路径时出现此错误 它需要在我的 def 中进行 pk 并插入它 但问题仍然存在 如果有人能帮忙 我会欠你很多 这是我在浏览器中遇到的错误 TypeError at batches index missing 1 required p
  • Android 操作系统是否有 /etc/passwd、/etc/shadow 和 /etc/group 等文件?

    如果不是 android如何判断用户是否属于某个组 该线程讨论了如何完成此操作 http groups google com group android ndk browse thread thread adddb27c1a5438e9 h
  • Unity C# ArgumentOutOfRangeException:参数超出范围。参数名称:索引[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在创建一个像蛇一样的游戏 在我下面的代码中 蛇身体的每个部分都是 Character 类的一个实例 当我尝试添加新角色时 出现错误
  • python中数组的就地修改

    我发现这个问题要求对数组进行就地修改 以便将所有零移动到数组末尾 并保持非零元素的剩余顺序 根据问题陈述 就地意味着不复制原始数组 这取自 Leetcode 可以在 283 Move Zeroes 中找到 输入和输出的示例是 0 1 0 1
  • 如何在 Github Gist 中软换行

    我有一个很长的字符串 我想使用 Github Gist 将其嵌入到我的博客中 我想为其启用换行 以便读者不必向右滚动即可查看整个字符串 即使在编辑时单击 软换行 选项 最终的要点也不会换行 编辑时 启用软包装 保存后 无换行 How can
  • PHP 将任何尺寸的图像调整为 16:9 的宽高比

    午安 我目前正在尝试了解如何以 16 9 的宽高比裁剪服务器上已加载的图像 为了更好地理解 如果我有 4 3 图像 我必须剪切顶部和底部图像部分以使其适合 16 9 比例 Thanks 我举了这个代码示例 http myrusakov ru
  • Javascript 中类似 Python 的“类”

    我想知道如何在 Javascript 中创建类似于 Python 中的 类 采用此处列出的 Python 类和函数 class one def foo bar some code 函数 foo 将被调用one foo bar JS 的等价物
  • 在纯原生 Android 应用程序中渲染文本

    我有一个纯原生的 Android NDK 应用程序 需要在每一帧渲染一些文本 我读过一些帖子 说我需要使用字体的所有字符创建一个图像文件 然后将每个字符渲染为该图像的四边形 这听起来需要大量工作 而且我不知道从哪里获取简单字体 例如 Ari
  • 将lucene索引分成两半

    将现有 Lucene 索引拆分为两半的最佳方法是什么 即每个拆分应包含原始索引中文档总数的一半 拆分现有索引 无需重新索引所有文档 的最简单方法是 制作现有索引的另一个副本 即 cp r myindex mycopy 打开第一个索引 并删除
  • 元组索引超出范围,Tensorflow

    这是模型 它是基本的张量流模型 可以拍摄数字的图片并告诉您它是什么数字 我知道python中的索引从0开始 我遇到的问题是这行代码 model fit np array test np array num 阅读下面的代码以获取更多信息 im
  • MATLAB调用DLL中函数时的堆栈限制是多少

    我试图弄清楚 当 MATLAB 调用 DLL 中的函数时 堆栈大小限制是多少 有没有办法配置限制 我在用loadlibrary and calllib函数来调用 C 实现的函数 在动态链接库中 我创建了一个测试来找出堆栈限制 我使用 MAT
  • MediaRecorder 无效状态 16

    我正在尝试录制音频并保存到 SD 卡 我收到无效状态异常 我添加了正确的权限 例如 record audio 和 write external storage 我在调用 start 之前已经准备好了 MediaRecorder 为什么我会遇
  • 在后台扫描 Android 8+ 上的 BLE 设备

    我在 Android 8 上使用 BLE 扫描仪 API 中的以下方法 扫描 BLE 信标 startScan List
  • 将 C++ 对象(尤其是 stl 容器)移动到特定的内存位置

    我正在与一个内存管理器合作 有时需要对内存进行碎片整理 基本上 我将浏览内存管理器分配的对象列表并重新定位它们 class A SomeClass data This member is allocated by the special m
  • “索引、关注”或“关注”有什么区别?

    下面的列表有什么区别 首先 你可能知道元机器人 标签 元机器人标签是告诉蜘蛛或爬虫要抓取或索引哪个页面 关注手段 页面将被抓取 没有关注意味着 页面不会被抓取 指数均值 您的页面显示在搜索结果中 无索引意味着 您的页面未显示在
  • Rails 3 SQL 查询选择与连接

    我的选择功能和连接有问题 这是我当前的查询 search Building joins INNER JOIN floors ON floors building id buildings id INNER JOIN spaces ON sp