【问题标题】:specifying a correct path for Show and Edit actions for nested resources为嵌套资源的显示和编辑操作指定正确的路径
【发布时间】:2013-06-26 03:42:58
【问题描述】:

我有 2 个模型

父亲.rb:

class Father < ActiveRecord::Base
    has_many :sons, dependent: :destroy
end

son.rb

class Son < ActiveRecord::Base
    belongs_to :father
end

routes.rb

Family::Application.routes.draw do
  resources :fathers do
    resources :sons
  end
end

rake 路由输出:

father_sons GET    /fathers/:father_id/sons(.:format)          sons#index
                POST   /fathers/:father_id/sons(.:format)          sons#create
 new_father_son GET    /fathers/:father_id/sons/new(.:format)      sons#new
edit_father_son GET    /fathers/:father_id/sons/:id/edit(.:format) sons#edit
     father_son GET    /fathers/:father_id/sons/:id(.:format)      sons#show
                PATCH  /fathers/:father_id/sons/:id(.:format)      sons#update
                PUT    /fathers/:father_id/sons/:id(.:format)      sons#update
                DELETE /fathers/:father_id/sons/:id(.:format)      sons#destroy
        fathers GET    /fathers(.:format)                          fathers#index
                POST   /fathers(.:format)                          fathers#create
     new_father GET    /fathers/new(.:format)                      fathers#new
    edit_father GET    /fathers/:id/edit(.:format)                 fathers#edit
         father GET    /fathers/:id(.:format)                      fathers#show
                PATCH  /fathers/:id(.:format)                      fathers#update
                PUT    /fathers/:id(.:format)                      fathers#update
                DELETE /fathers/:id(.:format)                      fathers#destroy

schema.rb

ActiveRecord::Schema.define(version: 20130626013724) do

  create_table "fathers", force: true do |t|
    t.string   "name"
    t.integer  "age"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

  create_table "sons", force: true do |t|
    t.string   "name"
    t.integer  "age"
    t.integer  "father_id"
    t.datetime "created_at"
    t.datetime "updated_at"
  end

  add_index "sons", ["father_id"], name: "index_sons_on_father_id"

end

问题是我应该为下面标有 AA、BB、CC 和 DD 的地方指定哪些路径和参数? 这是 app/views/sons/index.html.erb 文件的一部分:

 <% @sons.each do |son| %>
      <tr>
        <td><%= son.name %></td>
        <td><%= son.age %></td>
         <td><%= link_to 'Show', AA %></td>
        <td><%= link_to 'Edit', BB(CC) %></td>
        <td><%= link_to 'Destroy', DD, method: :delete, data: { confirm: 'Are you sure?' } %></td>
      </tr>
    <% end %>

我可以添加资源儿子。问题是指定它的显示和编辑路径。

代码也可以on github获取。

【问题讨论】:

    标签: ruby-on-rails nested-attributes ruby-on-rails-4


    【解决方案1】:

    阅读Nested Rsourcescreating-nested-resources

    <td><%= link_to 'Show', father_son_path(@father, son) %></td>
    <td><%= link_to 'Edit', edit_father_son_path(@father, son) %></td>
    <td><%= link_to 'Destroy', [@father, son], confirm: 'Are you sure?', method: :delete %></td>
    

    【讨论】:

      【解决方案2】:

      编辑edit_father_son(son.father, son) 为节目father_son(son.father, son) 我是凭记忆说的,也许是(儿子,儿子。父亲),但你现在应该有这个想法了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-09-29
        • 1970-01-01
        • 2017-07-11
        • 1970-01-01
        • 2011-09-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多