我有2个模特
father.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。
答案 0 :(得分:10)
阅读Nested Rsources和creating-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>
答案 1 :(得分:0)
用于修改edit_father_son(son.father, son)
for show father_son(son.father, son)
我是在记忆中说话,也许是(儿子,儿子,父亲),但你现在应该有这个想法。