所以我对轨道上的红宝石仍然很新,我想在这里做的很简单。我试图创建一个类似Facebook的应用程序,如果你点击一个帖子的个人资料图片,它将引导你到用户个人资料页面。我刚刚在在线课程中做了一些非常相似的事情,但我似乎无法让这个在另一个视图中工作。以下是我在标题栏中使用的内容。
导航条
<nav class="navbar navbar-default navbar-fixed-top">
......
<li><%= link_to "Show Profile" ,
user_profile_path(current_user.id, current_user.full_name) %></li>
....
</nav>
此代码可用,并将我引导至相应的用户个人资料页面。
路线
Rails.application.routes.draw do
....
root 'statuses#index'
get '/:id/:full_name', to: 'profile#show' , as: :user_profile
.....
end
问题视图
<div class="page-header">
....
<% @statuses.each do |status| %>
<div class="row">
<div class="col-md-1">
<%= link_to image_tag(status.user.avatar.url(:thumb),
user_profile_path(status.user.id, status.user.full_name)) %>
//the above is what gives me the error in the title.
</div>
<% end %>
我已经完成了我的公平分享搜索,如果我在接受hashkeys时传入字符串似乎会发生此错误?我不完全确定。如果有更好的方法,我应该使用,请告诉我,因为我是一个非常新的和开放的学习。
答案 0 :(得分:2)
您对link_to帮助器的使用有误。而不是:
<%= link_to image_tag(status.user.avatar.url(:thumb), user_profile_path(status.user.id, status.user.full_name)) %>
^first argument ^second argument
使用:
<%= link_to user_profile_path(status.user.id, status.user.full_name) do %>
<%= image_tag(status.user.avatar.url(:thumb)) %>
<% end %>
如您所见,您将 _path 帮助器作为 image_tag 的第二个参数传递,这是错误的。 image_tag 的第二个参数应该是哈希值,这就是为什么会出现undefined method 'symbolize_keys' for
错误。