我们如何列出提交习惯的用户姓名:<%= link_to @habit.user.name, @user %>
,但点击后,用户将被重定向回显示页面:http://0.0.0.0:3000/habits/1,而不是重定向到用户的个人资料页面:http://0.0.0.0:3000/users/1?
habits_controller
def show
@notable = @habit
@notes = @notable.notes
@note = Note.new
@commentable = @habit
@comments = @commentable.comments
@comment = Comment.new
@correct_user = current_user.habits.find_by(id: params[:id])
end
的routes.rb
resources :users do
resources :habits
end
resources :habits do
resources :notes
resources :notifications
resources :comments do
resources :likes
end
member do
post :like
post :notifications
end
resources :levels do
# we'll use this route to increment and decrement the missed days
resources :days_missed, only: [:create, :destroy]
end
end
答案 0 :(得分:2)
当您将@user
作为link_to
方法调用的第二个参数传递时,Rails会推断出user_path路由。您应该能够通过@user
并查看相应的行为,而不是@habit
。
如果隐式路径参数不起作用,您可以更具体地传递habit_path(@habit.id)
答案 1 :(得分:1)
我猜你的@user实例没有正确定义。您定义为@user的实际上是习惯实例。
答案 2 :(得分:1)
您是否尝试更改链接网址更具体?
即+1-234-567-1234