Rails 3嵌套资源视图(索引)

时间:2011-12-07 22:10:39

标签: ruby-on-rails ruby ruby-on-rails-3

所以我终于让我的网址使用嵌套资源,但还有一个小问题。我得到了mysite.com/profile/1/photos/new页面和表单以便正常工作,但mysite.com/profile/1/photos页面不起作用。我不知道为什么在这一点上。

我的嵌套路线看起来像这样。

resources :profiles do
 resources :photos
end

索引页面不起作用,它会给我以下错误

undefined method `user_id'

这就是我在photos_controller.rb文件中的内容

def index
  @profile = Profile.find(params[:profile_id])
  @photo = Photo.find_by_id(params[:all])
end

def show
  @profile = Profile.find(params[:profile_id])
  @photo = Photo.find(params[:id])
end

这是索引表单。这个表格不起作用。

<% title "Photos" %>

<table>
  <tr>
    <th>User</th>
    <th>Title</th>
    <th>Description</th>
  </tr>
<% for photo in ([@photos, @profile]) %>
  <tr>
    <td><%= photo.user_id %></td>
    <td><%= photo.title %></td>
    <td><%= photo.description %></td>
    <td><%= link_to "Show", profile_photo_path %></td>
    <td><%= link_to "Edit", edit_profile_photo_path%></td>
    <td><%= link_to "Destroy", profile_photo, :confirm => 'Are you sure?', :method => :delete %></td>
  </tr>
 <% end %>
</table>

1 个答案:

答案 0 :(得分:2)

mysite.com/photos应该是mysite.com/profiles/:profile_id/photosphotos/edit应为profiles/:profile_id/photo/:id/edit 链接帮助器看起来像

link_to "Photos", profile_photos_path(@profile)
link_to "Edit photo", profile_edit_photo_path(@profile,@photo)

查看有关nested resources

的导轨指南