如何在Ruby的视图文件中显示续集数据库连接中的内容?

克里斯

我正在尝试使用Sinatra中的Sequel从PostgreSQL数据库中检索数据。

DB = Sequel.connect('postgres:// connection_data')
项目= DB [:items]

然后,我尝试获取具有特定ID的条目:

get '/:id' do
   @item = items.filter(:id => params[:id]) 
   erb :edit
end

在我的编辑视图中,我想显示@item变量的内容。问题是我不知道如何获取ID。

<% if @item %>
   <a href="/<%= @item.id %>/doit">Do something</a>
<% else %>
   <p>Item not found.</p>
<% end %>

我尝试使用@ item.id和@item [:id],但两者都不起作用。我得到一个错误undefined method 'id' for #<Sequel::Postgres::Dataset:0x007fac118b7120>从@item变量检索值的正确方法是什么?

杰里米·埃文斯(Jeremy Evans)

@item = items.filter(:id => params[:id])返回数据集。如果您想要一个项目,则应该执行以下操作:@item = items.first(:id => params[:id].to_i)

@item.id可能是不想要你想要的。鉴于此items = DB[:items],您使用的是普通数据集,然后@item = items.first(:id => params[:id].to_i)将为您提供哈希值。您需要执行操作@item[:id]以获取商品的ID。

您可能要考虑使用模型:

# model file
class Item < Sequel::Model; end

# sinatra code
@item = Item[params[:id].to_i]

# template
@item.id

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在视图文件中显示外键数据?

使用视图文件中的键从数据库中检索数据

如何在pyqt中将数据库文件中的内容显示到控制台中

如何在Codeigniter视图文件中将数据库列名称的foreach值用作变量

php函数从数据库返回并从单独的视图文件中调用值

发送邮件时在视图文件中显示数据

在视图文件中显示特定数据

如何在“编辑视图”中显示文件名?文件名存储在图像文件夹中,也存储在数据库中

如何连接到sqlite3数据库文件并获取fastapi中的内容?

如何在Rails上的ruby中显示数据库中的单个记录

如何在assets文件夹中显示sqlite数据库中的数据?

如何在 Laravel 的刀片视图中显示数据库中的 html 值?

如何在 Laravel 7 的刀片视图中动态显示数据库中的项目总数

如何在MVC视图中显示数据库中的锚标记

如何在列表视图中显示数据库中的项目?

如何在laravel中设置视图文件路径?

如何在Azure功能中添加剃刀视图文件?

如何在Django的视图文件中调用模型的功能

如何在 Django 的视图文件中存储图像

想要在 foreach 循环中获取数据库记录,这是在 laravel 刀片/视图文件中?

如何通过html文件在MySQL数据库中显示内容?

如何在PHP中以字符串形式显示数据库中表的内容?

如何在 3 个月内显示数据库中的 div 内容

如何在 ruby on rails 中正确显示数据库中的图像

如何在Pug文件中显示数据库中的“字段”值?

在CodeIgniter的视图文件中写入数据

如何在Symfony中创建数据库SQL视图

如何在Spring中显示数据库中的图片?

如何在数据库中存储HTML内容