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_idHotel 模型中令人困惑,因为它与默认的 id 属性相矛盾。总之希望这对你有用。

注意:如果 hotel_id 在您的 table 中是独一无二的,那么最好在您的问题中使用 @SebastianPalma 的评论.