Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Desive创建“用户”显示页面_Ruby On Rails_Ruby_Devise - Fatal编程技术网

Ruby on rails 使用Desive创建“用户”显示页面

Ruby 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的用户的此页面,但是当我这样做时,我收到错误

我正在尝试创建一个用户显示页面,它将充当仪表板。我相信,按照这里列出的建议,我已经取得了很好的进展:但我还没有完全做到这一点

到目前为止,我已经完成了以下工作:

在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/views


关于如何解决此错误,有什么建议吗

如果您注意到它,那么从错误中可以明显看出:缺少模板用户/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