代码之家  ›  专栏  ›  技术社区  ›  StefanS

在Rails中传递链接到的URL的默认方式

  •  0
  • StefanS  · 技术社区  · 16 年前

    这是一个非常基本的问题,答案可能很简单。假设我有一个叫做产品的模型。当我添加

    map.resources :products
    

    到我的routes.rb,我可以访问一些默认路径新的_product_路径、编辑_product_路径等等。据我所知,当链接到某个资源(例如,使用link_to helper方法)时,应使用此选项:

    link_to "Edit Product", edit_product_path(@product)
    

    我的问题是:如果我有其他的控制器方法,比如

    def do_something
      ...
    end
    

    链接到此控制器方法的“最佳”方法是什么?

    link_to "Do Something", {:controller => 'products', :action => 'do_something', :id => @product.id}
    

    当然可以。但这是我应该使用的吗?

    我希望我能澄清我的观点!如果没有,请评论。我会尽量解释清楚的。

    1 回复  |  直到 16 年前
        1
  •  1
  •   Topher Fangio    16 年前

    您可能想了解一下Rails路由,特别是, adding a new Restful route .

    如果您使用这种方法,我相信它相当简单:

    # routes.rb
    map.resources :products, :member => { :do_something => :get }
    
    # your view.rb file
    link_to "Do Something", do_something_product_path(object_id)
    

    如果您希望URL在所有产品上运行(如更复杂的索引页),请确保阅读有关“收集路由”的部分。