如何在rails中将一个页面的内容显示到另一个页面

时间:2013-12-19 10:06:21

标签: ruby-on-rails

我是铁道新手。我创建了一个带有控制器products_controller.rb的演示项目,当我输入这个URL http://localhost:3000/products时,我可以看到数据库中的现有产品列表。但是我需要创建一个名为“display”的新页面,url应该是http://localhost:3000/products/display我的产品应该显示的位置。我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:1)

如果要使用辅助操作而不仅仅是索引操作的其他路径,则需要对集合执行自定义操作:

你的routes.rb

中的

resources :products do
  collection do
    get :display
  end
end

然后在您的products_controller.rb

class ProductsController
  def display
    @products = Product.all
  end
end

然后在你的app / views / products文件夹中创建一个display.html.erb / haml / ...并填写你想要的任何内容: - )

如果您只想要索引操作的其他路径,则可以添加自定义路径。路线指南更好地解释了这一点,所以我只是链接到它:http://guides.rubyonrails.org/routing.html

答案 1 :(得分:1)

我想您只想为产品的索引页面设置一个自定义网址。

您可以通过以下方式实现这一目标 -

你的routes.rb

中的

get "/products/display" => "products#index"
resources :products

请记住将资源放在自定义路由条目下方。

我希望这可以帮助你!!

答案 2 :(得分:0)

你可能正在寻找Rails'RESTful routing structure

每次在resources :controller文件中使用routes时,都会创建7 routes for that controller

  
      
  • 索引
  •   
  •   
  • 创建
  •   
  • 修改
  •   
  • 更新
  •   
  • 显示
  •   
  • 破坏
  •   

对我而言,您似乎正在尝试使用show方法:


显示

Rails'show方法基本上在页面上显示了一个特定的对象,如下所示:

/products/234

这会自行显示产品

您对此进行编码的方式非常简单:

#app/controllers/products_controller.rb
def show
    @product = Product.find(params[:id])
end 

然后,您可以使用此URL helper

链接到此内容
<%= link_to "View", products_path(product.id) %>

这将允许您显示您点击的产品