如何link_to来自不同MVC的用户配置文件?

时间:2015-07-09 16:29:56

标签: ruby-on-rails ruby

我们如何列出提交习惯的用户姓名:<%= 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

3 个答案:

答案 0 :(得分:2)

当您将@user作为link_to方法调用的第二个参数传递时,Rails会推断出user_path路由。您应该能够通过@user并查看相应的行为,而不是@habit

如果隐式路径参数不起作用,您可以更具体地传递habit_path(@habit.id)

答案 1 :(得分:1)

我猜你的@user实例没有正确定义。您定义为@user的实际上是习惯实例。

答案 2 :(得分:1)

您是否尝试更改链接网址更具体? 即+1-234-567-1234