Ruby Rails 数据库查询 Ruby 变量
Ruby on Rails Database Query with Ruby Variable
这是我查询的当前代码..
<% property_id = params[:property] %>
<%= property_name = Hotel.find_by_sql('
SELECT name
FROM hotels
') %>
我希望能够添加类似
的内容
WHERE hotel_id == property_id
但由于 "property_id" 部分,我尝试的一切似乎都不起作用。我试过连接、不同的分配等。我觉得很蠢。紧急求救。提前谢谢你。
此外,当我添加..
WHERE hotel_id == "hotelid1"
其中 "hotelid1" 是 table 中现有的 hotel_id。它有效,但不是我想象的那样。它returns..
"[#Hotel id: nil, name: "HotelOne">]"
我希望它只输出酒店名称。在这种情况下,HotelOne.
我想你正在找这个。
<%= property_name = Hotel.find_by_sql("SELECT name FROM hotels WHERE hotel_id=#{ruby_variable}") %>
尝试以下行:-
<% property_name = ActiveRecord::Base.connection.execute("SELECT name FROM hotels WHERE hotel_id=#{property_id}").first["name"] %>
ActiveRecord 的 where
应该足够了。
property_names = Hotel.where(hotel_id: params[:property]).pluck(:name)
hotel_id
在 Hotel
模型中令人困惑,因为它与默认的 id
属性相矛盾。总之希望这对你有用。
注意:如果 hotel_id
在您的 table 中是独一无二的,那么最好在您的问题中使用 @SebastianPalma 的评论.
这是我查询的当前代码..
<% property_id = params[:property] %>
<%= property_name = Hotel.find_by_sql('
SELECT name
FROM hotels
') %>
我希望能够添加类似
的内容WHERE hotel_id == property_id
但由于 "property_id" 部分,我尝试的一切似乎都不起作用。我试过连接、不同的分配等。我觉得很蠢。紧急求救。提前谢谢你。
此外,当我添加..
WHERE hotel_id == "hotelid1"
其中 "hotelid1" 是 table 中现有的 hotel_id。它有效,但不是我想象的那样。它returns..
"[#Hotel id: nil, name: "HotelOne">]"
我希望它只输出酒店名称。在这种情况下,HotelOne.
我想你正在找这个。
<%= property_name = Hotel.find_by_sql("SELECT name FROM hotels WHERE hotel_id=#{ruby_variable}") %>
尝试以下行:-
<% property_name = ActiveRecord::Base.connection.execute("SELECT name FROM hotels WHERE hotel_id=#{property_id}").first["name"] %>
ActiveRecord 的 where
应该足够了。
property_names = Hotel.where(hotel_id: params[:property]).pluck(:name)
hotel_id
在 Hotel
模型中令人困惑,因为它与默认的 id
属性相矛盾。总之希望这对你有用。
注意:如果 hotel_id
在您的 table 中是独一无二的,那么最好在您的问题中使用 @SebastianPalma 的评论.