将Show(show.html.erb)操作中的@User数据打印到otherpage.html.erb

时间:2016-02-22 23:51:35

标签: ruby-on-rails ruby ruby-on-rails-4

在我的页面_user.html.erb上,我正在生成用户搜索结果。已成功填充搜索到的用户凭据(名称,电子邮件等)。但是,当我的访问者点击" Go"在他们生成的用户名上按钮,它目前将他们带到show.html.erb(完整的用户个人资料)。

<%= link_to image_tag("/assets/go.png", :alt => "Image Description", :action => "show"), user_path(user.id) %>

也就是说,我想在show.html.erb以外的页面上生成相同的用户数据(名字,姓氏等), 例如 otherpage.html .erb。

我认为这可行:

<%= link_to image_tag("/assets/go.png", :alt => "Image Description", :action => "otherpage"), user_path(user.id) %>

虽然我认为它并不是因为它没有抓住生成的用户ID ...有谁知道我怎么做到这一点?非常感谢 - 我在时间紧迫的情况下!

注意: &lt;%=渲染用户%&gt;在otherpage.html.erb上成功显示所有用户,但我只想要所选用户。

users_controller.rb

def show
  @user = User.find(params[:id])
end

def otherpage

     @user = User.find(params[:id])
     @user = User.all
      if params[:search]
        @user = User.search(params[:search]).order("created_at DESC")
      else
        @user = User.all.order('created_at DESC')
      end
    end

_user.html.erb

   <div class="name">
          <%= link_to user.firstname, user %> <%= user.lastname %> 
    <%= link_to image_tag("/assets/go.png", :alt => "Image Description", :action => "show"), user_path(user.id) %>

    </div>

otherpage.html.erb

  <%= render @user %>

1 个答案:

答案 0 :(得分:1)

您必须在get '/otherpage', to: 'users#otherpage'

为新操作定义路线
<%= link_to image_tag("/assets/go.png", :alt => "Image Description", :action => "otherpage"), otherpage_path(user.id) %>

你可以使用:

rake routes

如@archana所述,您可以从终端运行{{1}}以查看所有可用路由,包括您刚创建的路由。