0

我正在我的应用程序布局中尝试此代码。它是屏幕顶部的“用户导航”栏。

<%= link_to "My Profile", edit_profile_path, :class => "user_nav_button" %>

我正进入(状态

没有路由匹配 {:action=>"edit", :controller=>"profiles"}

但是,rake 路线显示:

edit_profile GET /profiles/:id/edit(.:format) 配置文件#edit

如果我直接转到/profiles/1/edit我的视图有效,并且 link_to 显示............

我认为这与没有正确获取参数有关......我正在使用 devise/cancan/rolify 并且 current_user.id 是我的参数。

4

2 回答 2

3

该路径方法调用需要对象的实例。否则,Rails 不知道您要编辑哪个用户配置文件并且它不会猜测。

edit_profile_path(@user) # Where @user is an instance of a User model from your controller
于 2013-01-17T03:15:06.977 回答
1

如果您不希望 id 显示在地址栏上,您应该添加一个新路由到 /profile/edit 之类的东西,而不需要 id,并在控制器上获取 current_user 的 id

否则使用 edit_profile_path(@user) 就像上面所说的 patrickmcgraw

于 2013-01-17T03:19:00.077 回答