使用 DeIde 创建公共用户配置文件



Devise 没有用户个人资料页面,所以我正在滚动自己的页面。到目前为止,我发现的是:

控制器:

class Users::ProfilesController < ApplicationController
  def show
    @user = User.find_by_username(params[:username])
  end
end

路线:

as :user do
  get 'users/profile/:username', to: 'users/profiles#show'
end
resources :users, :only =>[:show]

视图:

<% if user_signed_in? %>
    <%= current_user.username %>
<% else %>
    <%= User.find_by(username: params[:username]) %>
<% end %>

这里的问题是这只是渲染类似 #<User:0x007fa986d711d0> ,每次我加载页面时都会更改。

在您的show方法中,您已经通过username找到了您的User

您可以将 else 语句更改为要查找的属性,例如:

@user.username or User.find_by(username: params[:username]).username

使用 User.find_by(username: params[:username]) 时,它通过 username 参数查找User对象并返回该对象,因为未显示任何属性。

此外,将视图逻辑移出并使用帮助程序或使用 Draper可能会有所帮助。

最新更新