0

我真的不知道为什么会这样。

这是我的路线

resources :users do
    resources :bookmarks
end

控制器

# bookmarks_controller
def edit 
    # this returns perfectly data in the edit view
    @bookmark = current_user.bookmarks.find(params[:id])
end

这是视图

<%= form_for @bookmark do |b| %>
<% end %>

由于当我将书签资源嵌套在用户内部时一切都搞砸了,所以会导致错误

未定义的方法`bookmark_path'

然后我将表格更改为

<%= form_for user_bookmark_path(current_user, @bookmark) do |b| %>

错误消失但文本字段表单中没有此类数据,表单操作为/users/[user_id]/bookmarks/[bookmark_id]/edit

耙路线信息

user_bookmarks     GET    /users/:user_id/bookmarks(.:format)          bookmarks#index
                   POST   /users/:user_id/bookmarks(.:format)          bookmarks#create
new_user_bookmark  GET    /users/:user_id/bookmarks/new(.:format)      bookmarks#new
edit_user_bookmark GET    /users/:user_id/bookmarks/:id/edit(.:format) bookmarks#edit
user_bookmark      GET    /users/:user_id/bookmarks/:id(.:format)      bookmarks#show
                   PUT    /users/:user_id/bookmarks/:id(.:format)      bookmarks#update
                   DELETE /users/:user_id/bookmarks/:id(.:format)      bookmarks#destroy

知道如何解决吗?谢谢

4

1 回答 1

4

尝试类似:

<%= form_for [current_user, @bookmark] do |b| %>
<% end %>
于 2012-12-21T16:38:41.130 回答