Ruby on rails 使用Desive创建“用户”显示页面
我正在尝试创建一个用户显示页面,它将充当仪表板。我相信,按照这里列出的建议,我已经取得了很好的进展:但我还没有完全做到这一点 到目前为止,我已经完成了以下工作: 在users\u controller.rb文件中创建了show方法 在routes.rb中创建了路由 在designe/registrations/show.html.erb下创建了show.html.erb视图 现在,我假设我可以通过localhost:3000/users/1访问ID=1的用户的此页面,但是当我这样做时,我收到错误: 缺少模板用户/show、应用程序/show和{:locale=>[:en]、:formats=>[:html]、>:handlers=>[:erb、:builder、:raw、:ruby、:jbuilder、:coffee]}。搜索范围:*c:/Users /Evan/Desktop/reviewdraft/app/views*c:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0 /gems/designe-3.4.1/app/viewsRuby on rails 使用Desive创建“用户”显示页面,ruby-on-rails,ruby,devise,Ruby On Rails,Ruby,Devise,我正在尝试创建一个用户显示页面,它将充当仪表板。我相信,按照这里列出的建议,我已经取得了很好的进展:但我还没有完全做到这一点 到目前为止,我已经完成了以下工作: 在users\u controller.rb文件中创建了show方法 在routes.rb中创建了路由 在designe/registrations/show.html.erb下创建了show.html.erb视图 现在,我假设我可以通过localhost:3000/users/1访问ID=1的用户的此页面,但是当我这样做时,我收到错误
关于如何解决此错误,有什么建议吗 如果您注意到它,那么从错误中可以明显看出:缺少模板用户/show。它要求您在用户目录中创建show.html.erb 您需要在此处创建视图:app/views/users/show.html.erb而不是designe/registrations/show.html.erb,因为您从ApplicationController继承了UsersController,这与designe没有任何关系。使用此创建app/views/users/show.html.erb,然后重试:
<%= @user.name %>
如果您注意到这一点,很明显会出现错误:缺少模板用户/显示。它要求您在用户目录中创建show.html.erb 您需要在此处创建视图:app/views/users/show.html.erb而不是designe/registrations/show.html.erb,因为您从ApplicationController继承了UsersController,这与designe没有任何关系。使用此创建app/views/users/show.html.erb,然后重试:
<%= @user.name %>
设计有自己的观点。不需要自己编写用户视图。要生成视图,请使用以下生成器:rails生成设备:视图 所有需要的视图将在app/views/designe下生成
在那里,您可以通过当前用户变量访问登录的用户。设备自带自己的视图。不需要自己编写用户视图。要生成视图,请使用以下生成器:rails生成设备:视图 所有需要的视图将在app/views/designe下生成
您可以通过当前用户变量访问登录的用户。使用设备显示当前用户/其他用户配置文件: 安装装置后 创建用户控制器:
rails generate controller Users
def index
@users = User.all
end
然后创建一个show操作并查找具有参数id的用户:
def show
@user = User.find(params[:id])
end
在用户视图文件夹中创建show.html.erb文件:
<%= @user.email %>
在用户视图文件夹中创建index.html.erb,然后:
<% @users.each do |user| %>
<%= link_to user.username, user %>
<%= user.email %>
<% end %>
这方面的链接将是:
<%= link_to "show_index_of_users", users_path %>
这会将您链接到users index.html.erb文件,您将在其中创建一个循环并链接到用户配置文件:
<% @users.each do |user| %>
<%= link_to user.username, user %>
<%= user.email %>
<% end %>
这应该管用 使用设备显示当前用户/其他用户配置文件: 安装装置后 创建用户控制器:
rails generate controller Users
def index
@users = User.all
end
然后创建一个show操作并查找具有参数id的用户:
def show
@user = User.find(params[:id])
end
在用户视图文件夹中创建show.html.erb文件:
<%= @user.email %>
在用户视图文件夹中创建index.html.erb,然后:
<% @users.each do |user| %>
<%= link_to user.username, user %>
<%= user.email %>
<% end %>
这方面的链接将是:
<%= link_to "show_index_of_users", users_path %>
这会将您链接到users index.html.erb文件,您将在其中创建一个循环并链接到用户配置文件:
<% @users.each do |user| %>
<%= link_to user.username, user %>
<%= user.email %>
<% end %>
这应该管用 尝试将show.html.erb移动到app/views/users/show.html.erb我猜问题在于当前位置不在控制器操作的预期位置。或者,您也可以在操作中使用render吐出文件的当前位置,但将其放在正确的位置可能会更干净。请尝试将show.html.erb移动到app/views/users/show.html.erb。我猜问题在于当前位置不在该控制器操作的预期位置。或者,您也可以在操作中使用render来显示文件的当前位置,但将其放在正确的位置可能会更干净。非常感谢!我对Rails还是个新手,但是在重新阅读了这个答案和错误消息之后,很明显它所暗示的是什么。现在好好工作吧!非常感谢你!我对Rails还是个新手,但是在重新阅读了这个答案和错误消息之后,很明显它所暗示的是什么。现在好好工作吧!routes.rb文件呢?这是什么样子的?安装Desive将在routes.rb/中自动生成-Desive_for:users-您可能还想添加-resources:users-如果您想通过将它们添加两个来检查生成了哪些路由-转到您的终端并键入-rake routes.rb文件呢?这是什么样子的?安装Desive将在routes中自动生成-Desive_for:users。rb/您可能还想添加-resources:users-如果您想通过将它们添加两个来检查生成了哪些路由,请转到您的终端并键入-rake routes