Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails如何在视图中使用带参数的模型_Ruby On Rails_Ruby_Postgresql_Model_Pg - Fatal编程技术网

Ruby on rails Rails如何在视图中使用带参数的模型

Ruby on rails Rails如何在视图中使用带参数的模型,ruby-on-rails,ruby,postgresql,model,pg,Ruby On Rails,Ruby,Postgresql,Model,Pg,我想让建议的产品显示在展示页面上,我的模型中有这个,我使用的是pg //Product model def self.similar(product_name) where("name LIKE ?", "%#{product_name}%").limit(4) end 我如何在我的viewshow中使用它来传递参数,因此我不确定您从哪里获得“产品名称”,但听起来您只需要控制器“Show”方法中的一个变量 简单的方法是在控制器的“Show”方法中添加如下内容: d

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

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

我如何在我的viewshow中使用它来传递参数,因此我不确定您从哪里获得“产品名称”,但听起来您只需要控制器“Show”方法中的一个变量

简单的方法是在控制器的“Show”方法中添加如下内容:

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>

这个空正则表达式是干什么用的?您应该在控制器中使用它,以分配一个或多个实例变量,您将在视图中使用它。添加控制器显示动作,请使用SQL injection?产品。similar@product.nameYou错过了%…%What is@product_行?在显示页面上,我有@product.name,所以我想使用它,您不需要将@product.name作为参数传递。控制器从参数中获取产品名称并进行查询@类似的产品,每种都足够了。