个人资料页面未显示状态名称和内容

时间:2015-08-17 00:30:52

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

我正在使用rails创建一个facebook克隆,但我坚持使用不显示状态和内容的个人资料页面。这是代码文件:

应用程序/控制器/ profiles_controller.rb

class ProfilesController < ApplicationController
   def show
    @user = User.find_by_profile_name(params[:id])
    if @user
        @statuses = @user.statuses.all
        render action: :show
    else
    render file: 'public/404' , status: 404 , formats: [:html]
    end
  end
end

应用程序/视图/简档/ show.html.erb

<%if @statuses%>

    <% @statuses.each do |status| %>
    <%= status.content %>

  <% end %>
<% end %>

1 个答案:

答案 0 :(得分:0)

在您的控制器操作中,要抓住@user = User.find_by_id(params[:id]) ,您应该执行以下操作:

find

此外,您可以使用find_by_id方法代替@user = User.find(params[:id])

user

在这种情况下,如果在数据库中找不到id config/routes.rb,它将抛出异常。

从github处理项目后更新:

所以,你有一些问题。要解决这些问题,请执行以下操作:

resources :profiles 文件中添加:

apps/views/profiles/show.html.erb

<% if @statuses %> <% @statuses.each do |status| %> <div class="well"/> <%= status.content %> <%end%> <%end%> 更改为:

profiles_controller.rb

class ProfilesController < ApplicationController def show @user = User.find_by_id(params[:id]) if @user @statuses = @user.statuses.all render action: :show else render file: 'public/404' , status: 404 , formats: [:html] end end end 中,您已经拥有了正确的代码:

http://localhost:3000/profiles/1

进行这些更改,您的个人资料页{{1}}将像魅力一样:-) [我刚刚在我的计算机上测试过]。