Ruby on rails 如何在个人资料页上显示回形针图像?
我对rails非常陌生,正在尝试通过构建一个概要页面来进行一些练习。我已经实现了Desive,一旦用户登录,他们就可以点击一个链接,显示一个包含他们信息的个人资料。现在它只是显示他们的姓名、出生日期和性别。我想它也显示他们的图像。因此,我捆绑了回形针宝石,并通过阅读一些教程,试图让它配置。我已经把代码准备好了,用户可以点击“选择文件”并选择图像。但是,当我单击“更新”时,它会向我提供一个错误。我希望图像显示在他们个人资料的同一显示页面上 profiles_controller.rb 单击“更新”后出错: 路由错误 没有与[PATCH]/profiles/edit.21匹配的路由Ruby on rails 如何在个人资料页上显示回形针图像?,ruby-on-rails,image,devise,paperclip,image-uploading,Ruby On Rails,Image,Devise,Paperclip,Image Uploading,我对rails非常陌生,正在尝试通过构建一个概要页面来进行一些练习。我已经实现了Desive,一旦用户登录,他们就可以点击一个链接,显示一个包含他们信息的个人资料。现在它只是显示他们的姓名、出生日期和性别。我想它也显示他们的图像。因此,我捆绑了回形针宝石,并通过阅读一些教程,试图让它配置。我已经把代码准备好了,用户可以点击“选择文件”并选择图像。但是,当我单击“更新”时,它会向我提供一个错误。我希望图像显示在他们个人资料的同一显示页面上 profiles_controller.rb 单击“更新”
我感谢任何帮助,如果需要进一步的信息,请告诉我 尝试添加此路由以设计_范围来传递该错误
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| %>