Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.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 如何在个人资料页上显示回形针图像?_Ruby On Rails_Image_Devise_Paperclip_Image Uploading - Fatal编程技术网

Ruby on rails 如何在个人资料页上显示回形针图像?

Ruby on rails 如何在个人资料页上显示回形针图像?,ruby-on-rails,image,devise,paperclip,image-uploading,Ruby On Rails,Image,Devise,Paperclip,Image Uploading,我对rails非常陌生,正在尝试通过构建一个概要页面来进行一些练习。我已经实现了Desive,一旦用户登录,他们就可以点击一个链接,显示一个包含他们信息的个人资料。现在它只是显示他们的姓名、出生日期和性别。我想它也显示他们的图像。因此,我捆绑了回形针宝石,并通过阅读一些教程,试图让它配置。我已经把代码准备好了,用户可以点击“选择文件”并选择图像。但是,当我单击“更新”时,它会向我提供一个错误。我希望图像显示在他们个人资料的同一显示页面上 profiles_controller.rb 单击“更新”

我对rails非常陌生,正在尝试通过构建一个概要页面来进行一些练习。我已经实现了Desive,一旦用户登录,他们就可以点击一个链接,显示一个包含他们信息的个人资料。现在它只是显示他们的姓名、出生日期和性别。我想它也显示他们的图像。因此,我捆绑了回形针宝石,并通过阅读一些教程,试图让它配置。我已经把代码准备好了,用户可以点击“选择文件”并选择图像。但是,当我单击“更新”时,它会向我提供一个错误。我希望图像显示在他们个人资料的同一显示页面上

profiles_controller.rb

单击“更新”后出错:

路由错误 没有与[PATCH]/profiles/edit.21匹配的路由


我感谢任何帮助,如果需要进一步的信息,请告诉我

尝试添加此路由以设计_范围来传递该错误

patch 'profiles/edit' => 'users/profiles#edit'
顺便说一句,在ProfilesController中

创建新配置文件应处于创建操作中 在“编辑”操作中,应加载现有的纵断面并渲染“编辑视图” 更新:

编辑视图中的表单将向操作更新提交数据,我们需要再次获取配置文件并更新数据 您的路由不正确,当编辑配置文件时,我们应该提交一个类似于users/profiles/4/update的url

您可以按如下方式声明路由

 devise_for :users, :controllers => { :registrations => 'users/registrations' }
 namespace :users do
   resources :profiles
 end
在更新操作中,检索该概要文件p=profile.findparams[:id]并更新它p.photo=params[:photo];p、 保存或任何您想要的内容

尝试:

patch 'profiles/:id' => 'users/profiles#update'
窗体帮助程序应如下所示:

<%= form_for(@profile, html: { :multipart => true }) do |f| %>

希望对你有帮助

谢谢你的帮助!正如你所建议的,我在路由文件中添加了补丁“profiles/edit”=>“users/profilesedit”。我还将创建新的配置文件移动到创建操作中。现在我收到了ActiveRecord::RecordNotFound in Users::ProfilesControllereditIt听起来像是在profiles控制器的编辑操作中,我必须添加一些逻辑来加载现有用户的配置文件页面…@DamonClark我只是更新了答案,希望它可以帮助您我正在获取找不到具有“id”的配置文件=我假设我没有创建任何配置文件。。。我觉得我必须添加一些逻辑来连接User表和Profile表。
Rails.application.routes.draw do
  devise_for :users, :controllers => { :registrations => 'users/registrations', :profiles => 'users/profiles' }

  devise_scope :user do
    get 'profiles/edit' => 'users/profiles#edit'
    post 'profiles/edit' => 'users/profiles#edit'
    get 'users/:id' => 'users/registrations#show', as: :user 
  end


  root to: "home#index"


end
patch 'profiles/edit' => 'users/profiles#edit'
 devise_for :users, :controllers => { :registrations => 'users/registrations' }
 namespace :users do
   resources :profiles
 end
patch 'profiles/:id' => 'users/profiles#update'
<%= form_for(@profile, html: { :multipart => true }) do |f| %>