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

表单和路径前缀中的自定义参数

  •  2
  • fguillen  · 技术社区  · 15 年前

    我有一条路线:

    # config/routes.rb
    map.namespace :backshop, :path_prefix => '/:shop_id/admin' do |backshop|
      backshop.resources  :items
    end
    

    我想用 表1 在两个页面上重复使用相同表单的魔力: 编辑 意见:

    <% form_for [:backshop, @item] do |f| %>
    

    这是用来工作的,用来建立一个 为项目创建url 更新项目的url @项目

    但这对这个案子不起作用,因为没有 商店id 参数,我不知道如何对

    <% form_for [:backshop, @item], :shop_id => @shop do |f| %>
    

    因为它试图利用 @项目 就像 :商店id

    <% form_for [:backshop, @shop, @item] do |f| %>
    

    backshop_shop_order_path
    

    我知道我可以提取 表1 声明,并根据 新的 编辑 :

    <% form_for( @item, :url => backshop_items_path( @shop ) ) do |f| %>
    

    <% form_for( @item, :url => backshop_item_path( @shop, @item ) ) do |f| %>
    

    但我只是不想这样做,因为我有一堆模型,是一些无聊:)

    谢谢你的建议

    f。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Corey    15 年前

    看起来你想用一个名称空间来嵌套资源也许你可以重写你的路由

    map.namespace(:admin) do |admin|
      admin.resources :shops do |admin_shop|
         admin_shop.resources :item
      end
    end
    

    现在你应该可以使用 [@shop, @item] rake routes 检查路线,看是否符合你的喜好。