【问题标题】:Rails How to use model with params in viewRails 如何在视图中使用带有参数的模型
【发布时间】:2019-07-14 02:22:07
【问题描述】:

我想让建议的产品显示在展示页面上我的模型中有这个(我正在使用 pg)

//Product model
def self.similar(product_name)
        where("name LIKE ?", "%#{product_name}%").limit(4)
      end 

如何在我的视图中使用它(如何传递参数)

【问题讨论】:

  • 那个空的正则表达式是干什么用的?
  • 您应该在控制器中使用它来分配一个实例变量,您将在视图中使用它。请添加控制器show动作
  • SQL注入?
  • Product.similar(@product.name)

标签: ruby-on-rails ruby postgresql model pg


【解决方案1】:

所以我不确定您从哪里获得“产品名称”,但听起来您只需要控制器“显示”方法中的一个变量。

简单的方法是在控制器的“显示”方法中添加如下内容;

def show
    @similar_products = Product.where("name LIKE ?", params[:product_name]).limit(4)
end

然后在您的显示页面中将其添加到 html.erb 中;

<div class='container'>
    <% @similar_products.each do |product| %>
        <%= product.name %>
        <%= product.price %>
    <% end %>
</div>

【讨论】:

  • 你错过了%...%
  • 什么是@product_lines
  • 在显示页面上,我有@product.name 所以我想使用那个&lt;% @similar_products(@product.name).each do |product| %&gt;
  • 您不需要将 @product.name 作为参数传递。控制器从参数中获取 product_name 并进行查询; @similar_products.each 就够了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-12
  • 2021-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-15
相关资源
最近更新 更多