首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Rails 5中对自引用资源使用form_with

在Rails 5中,可以使用form_with来处理自引用资源。form_with是一个表单辅助方法,用于生成HTML表单,并与Rails的资源路由和控制器动作进行交互。

自引用资源是指一个资源与同一类型的其他资源存在关联关系的情况,例如一个用户可以关注其他用户,这里的用户就是自引用资源。

使用form_with处理自引用资源的步骤如下:

  1. 在视图文件中,使用form_with方法生成表单。可以指定表单的URL和HTTP方法,以及其他选项。例如:
代码语言:txt
复制
<%= form_with(model: @user, local: true) do |form| %>
  <%= form.text_field :name %>
  <%= form.submit %>
<% end %>
  1. 在控制器中,定义相应的动作来处理表单提交。例如:
代码语言:txt
复制
def create
  @user = User.new(user_params)
  if @user.save
    redirect_to @user
  else
    render :new
  end
end
  1. 在路由文件中,定义资源路由。例如:
代码语言:txt
复制
resources :users

form_with会根据资源对象的状态自动选择合适的URL和HTTP方法。对于新建资源,它会发送POST请求到创建动作;对于已存在的资源,它会发送PATCH请求到更新动作。

form_with还支持远程表单和AJAX提交,可以通过指定remote选项来实现。例如:

代码语言:txt
复制
<%= form_with(model: @user, remote: true) do |form| %>
  <%= form.text_field :name %>
  <%= form.submit %>
<% end %>

这样表单将以AJAX方式提交,可以在控制器中使用respond_to方法来处理AJAX请求。

推荐的腾讯云相关产品:腾讯云服务器(CVM),腾讯云数据库(TencentDB),腾讯云对象存储(COS),腾讯云容器服务(TKE),腾讯云人工智能(AI Lab)等。具体产品介绍和链接地址请参考腾讯云官方网站。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • GitHub 上有哪些项目能帮你更好的学习编程?

    如果你是前端感兴趣的普通用户,那可以看下我之前写的这篇文章,从今天开始学习 JS 吧!...如果你能熟练使用 Rails,你甚至可以短短几分钟内,通过其自带的脚手架功能快速搭建一个完整的个人博客。... Rails 社区中存在很多组织,这些组织都希望通过一种比较友好的方式向外界推广 Rails 技术。...而 Rails Girls 恰好就是其中一个组织,该组织于 2010 年在芬兰首都赫尔辛基创建,目的是希望能帮助更多女生更好的学习、使用 Rails。...通过这份计划,你可以获得时长超过 1500 小时的教学资源(如文本、视频、项目等),还可体验到他们网站所提供的可交互式编程环境。

    1.1K20

    周末看看 GitHub 上有哪些项目能帮你更好的学习编程?

    如果你是前端感兴趣的普通用户,那可以看下我之前写的这篇文章,从今天开始学习 JS 吧!...如果你能熟练使用 Rails,你甚至可以短短几分钟内,通过其自带的脚手架功能快速搭建一个完整的个人博客。... Rails 社区中存在很多组织,这些组织都希望通过一种比较友好的方式向外界推广 Rails 技术。...而 Rails Girls 恰好就是其中一个组织,该组织于 2010 年在芬兰首都赫尔辛基创建,目的是希望能帮助更多女生更好的学习、使用 Rails。...通过这份计划,你可以获得时长超过 1500 小时的教学资源(如文本、视频、项目等),还可体验到他们网站所提供的可交互式编程环境。

    1.3K50

    总结Web应用中常用的各种Cache

    文章以Nginx,Rails,Mysql,Redis作为例子,换成其他web服务器,语言,数据库,缓存服务都是类似的。 以下是3层的示意图,方便后续引用: ?...current_user.id] fresh_when :etag => [@article.cache_key, current_user_favorited] 另外提一个坑,如果nginx开启了gzip,rails...执行的结果进行压缩,会将rails输出的etag header干掉,nginx的开发人员说根据rfc规范,proxy_pass方式处理必须这样(因为内容改变了),但是我个人认为没这个必要,于是用了粗暴的方法...里面指定fresh_when以外,rails框架默认使用Rack::ETag middleware,它会自动给无etag的response加上etag,但是和fresh_when相比,自动etag能够节省的只是客户端时间..., "xxx", :expires_in => 1.day do 小技巧2:关联对象的自动更新 常使用对象update_at时间戳来作为cache key,可以关联对象上加上touch选项,自动更新关联对象时间戳

    4.7K40

    使用 Mastodon 搭建个人信息平台:调优篇

    而在上一篇文章里,我们有提到同机部署的状况下,相同容器网络中,可以直接使用 HTTP 进行服务间调用(省略掉为容器和系统安装签名证书的麻烦)。...因为我们只需要在处理 S3 相关资源的时候打补丁,所以可以使用下面的方式程序进行调整: def full_asset_url(source, **options) source = ActionController...解决前端资源使用错误协议 不论你使用上面哪一种方案,问题解决后,你会发现哪怕页面 meta 信息、接口响应字段中都是 https 协议的主机地址,Mastodon Web 端渲染界面中图片的时,始终会触发两次元素绘制...应用资源使用概览 一通操作下来,使用一阵 Mastodon 后,我们可以看到各个容器资源的具体使用情况,除了两个 Ruby 大户比较吃资源外,可以看到其他的应用的内存消耗都在 100MB (多数远远低于这个数值...后续也将陆续整理和分享一些知识管理、知识库建设过程中的小经验,希望能帮助到同样这个领域感兴趣、充满好奇心的你。 --EOF

    2.4K11

    GitLab 14 轻量化运行方案

    但是众所周知,GitLab v10 版本之后,不断增加功能,逐渐调整重心为一站式平台,产品趋于面向公司和组织,导致其对于服务器资源的依赖与日俱增,从最初的 1GB 左右内存的资源就能流畅运行,膨胀到了目前至少需要...而 Kerberos 和 Sentinel 文档中看起来是企业版软件的功能,为了节约资源,这里一并调整配置,显式声明关闭功能。...我们可以适当其进行调整和设置,够用就行。此外管理调度的 sidekiq 也可以调低并发,避免不必要的资源浪费。...如果你愿意使用轻量的 Drone 其进行替换的话,可以考虑将默认的 CI 功能关闭,可以将 CPU 资源消耗降低到非常低的数值。...不推荐调整的配置:Gitaly 前文提到不推荐 Gitaly 服务进行配置调整,因为这个服务对于环境变量的获取和判断使用在逻辑上有一些小问题。

    4.7K21

    慢的不是 Ruby,而是你的数据库

    这是一个简化版本(而我实际版本使用的 CSV 是这里使用的例子的十倍)。这个例子计算了一部电影的票数,并这些票数进行分组:0 到 10 票之间,10 到 100 票之间等等。...因此,可以说 Ruby 的确较慢,并且使用较多的资源。它做出了权衡,因此可能包括开发在内的整体成本更低。这取决于具体情况,没有绝对的定论。...我个人主要使用 Ruby 编写代码,但很少涉及 Rails(因为我不太喜欢它),不过我是个例外。 Ruby 开发中,几乎总是采用 “用 Rails 进行 Web 开发” 的方式。...然而,这也导致 Rails 中性能成为一个问题,甚至比 Ruby 中更加突出。 因此,“堆栈” 指的是 “使用数据库的 Ruby on Rails”。...引用 DHH Rails 的一句话: “所有花哨的优化都是为了让你更接近于如果你没有使用这么多技术就会得到的性能”☝️ https://macwright.com/2020/05/10/spa-fatigue.html

    13830

    如何使用本地 Docker 更好地开发?我们总结了这八条经验

    这并不是说本地使用 Docker 开发就没有缺点,但它带来的便利远远超过了缺点。 随着时间的推移,我们总结出了自己的一套最佳实践,可以有效设置 Docker 开发环境。...3 只 docker-compose.yml 中引用一次 Dockerfile 如果你将同一个镜像用于多个服务(你应该这么做),只需要在一个服务的定义中提供构建说明,给它起一个名字,然后在其他服务中引用这个名字...举个例子,假设有个 Rails 应用程序使用一个共享的镜像来运行开发服务器和 webpack-dev-server,那么配置可能像这样: services: rails: image: appname_rails.../bin/webpack-dev-server 这样,当我们构建服务(使用 docker-compose)时,镜像就只构建一次。...6 apt-get 更新后进行清理 如果在 Dockerfiles 中引用了基于 Debian 的镜像,你就必须运行 apt-get update,然后才能通过 apt-get install 安装依赖项

    2.1K40

    GitLab 14 轻量化运行方案

    但是众所周知,GitLab v10 版本之后,不断增加功能,逐渐调整重心为一站式平台,产品趋于面向公司和组织,导致其对于服务器资源的依赖与日俱增,从最初的 1GB 左右内存的资源就能流畅运行,膨胀到了目前至少需要...而 Kerberos 和 Sentinel 文档中看起来是企业版软件的功能,为了节约资源,这里一并调整配置,显式声明关闭功能。...我们可以适当其进行调整和设置,够用就行。此外管理调度的 sidekiq 也可以调低并发,避免不必要的资源浪费。...如果你愿意使用轻量的 Drone 其进行替换的话,可以考虑将默认的 CI 功能关闭,可以将 CPU 资源消耗降低到非常低的数值。...不推荐调整的配置:Gitaly 前文提到不推荐 Gitaly 服务进行配置调整,因为这个服务对于环境变量的获取和判断使用在逻辑上有一些小问题。

    2.9K40

    部署GitLab代码托管仓库

    GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,GitLab是使用Ryby开发的一个开源的版本管理系统,实现一个托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目...缺少的最大的一个特征. 5、GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法.这能确保代码内容的完整性,确保遇到磁盘故障和网络问题时降低版本库的破坏....大部分公司的处理流程如下: PMgitlab创建任务,分配给开发人员. 开发人员领取任务后,本地使用git clone拉取代码库....开发人员gitlab界面上申请分支合并请求(Merge request). PMgitlab上查看提交和代码修改情况,确认无误后,确认将开发人员的分支合并到主分支(master)....[root@localhost ~]# gitlab-ctl reconfigure [root@localhost ~]# gitlab-ctl restart 8.使用gitlab-rails console

    1.8K20

    GitHub CEO:GitHub 十年,感谢有你

    借助 Node.js,开发人员可以使用 Angular,Ember,React,jQuery 和 Vue 等库和框架,操作系统上构建复杂的服务器端和桌面应用程序。...2013年,该团队开始了Summer of Code 全球奖学金计划,除了Google Summer of Code,Outreachy 等,Rails Girls Summer of Code 软件行业的产生了持久且积极的影响...微软也成为 GitHub 上最活跃的组织之一,数千名工程师,设计师和程序经理平台和编程语言中贡献和发布软件。 微软和谷歌等大公司对开源软件的重视,代表了他们软件的态度。...的库,但这也仅仅是 GitHub 教育资源的一部分。...肯尼亚,WCS使用软件收集全球研究人员的数据,并通过收集物种数据,监测超过 252 公顷的沿海礁石,这相当于 260 个足球场那么大。帮助当地更绿色生态地进行捕捞。

    88240

    架构之美:教你如何分析一个接口?

    REST如今已经成为很多人耳熟能详的名词,它把Web 的各种信息当作资源。...既然是资源,它就可以对这些Web信息做各种操作,这些操作对应着HTTP的各种动词(GET、POST、PUT、DELETE等)。 REST是为了纠正大家HTTP的误用。...RailsREST的使用方式做了一个约定。只要你遵循Rails的惯用写法,写出来的结果基本上就是符合REST结构的,也就是说,Rails把REST这个模型用一种更实用的方式落地了。...Java后期的一些开源项目也开始向Rails学习。比如,使用Spring Data JPA的项目后,我们也可以写出类似Rails的代码。...查看接口,关键要看接口的风格,也就是项目作者引导人们怎样使用接口。一个项目里,统一接口风格也是很重要的一个方面,所以,熟悉现有的接口风格,保持统一也是非常重要的。

    2.2K20

    CICD:CentOS 下 GitLab 安装

    GitLab 是一个利用 Ruby on Rails 开发的开源应用程序,实现一个托管的Git项目仓库,可通过 Web 界面进行访问公开的或者私有的项目。...GitLab 创建项目时,项目访问地址是容器id 的问题 # 可以使用/ 来查找关键字,找到指定的内容,然后通过n来下一个查找 # gitlab创建项目时候http地址的host(不用添加端口) external_url...'http://192.168.56.9:80' # gitlab创建项目时候ssh地址的host gitlab_rails['gitlab_ssh_host'] = '192.168.56.9'(... gitlab.rb 文件的最后添加如下配置 [ 也可以不添加 ] # 是否启用 gitlab_rails['smtp_enable'] = true # SMTP服务的地址 gitlab_rails...'] = "smtp.qq.com" # 登录验证 gitlab_rails['smtp_authentication'] = "login" # 使用了465端口,就需要配置下面三项 gitlab_rails

    2.1K20

    如何在Debian 8上使用RVM安装Ruby on Rails

    本教程中,您将在Debian 8服务器上安装RVM,然后使用RVM安装稳定版本的Ruby on Rails,您将学习如何使用RVM管理多个版本的Ruby。...服务器上安装Node.js,因为Ruby on Rails使用Node.js来管理客户端。 如何在Debian 8安装Node.js教程可以参考腾讯云Node.js安装教程。...安装 使用RVM安装Ruby on Rails的最快方法是运行RVM网站上的安装脚本。 首先,使用gpg命令联系公钥服务器并请求RVM项目的密钥,该密钥用于每个RVM版本进行签名。...请注意,rails_version只会引用版本号,如4.2.7。...$ gem install rails -v rails_version 您可以通过创建gemsets然后使用常规gem命令在其中安装Rails每个Ruby版本中使用各种Rails版本: $ rvm

    5.1K20

    Rails 从入门到完全放弃

    Rails电商的探索 构建电商系统的时候,很自然就 pull 了ECShop的源码来学习。 业务上的问题并不大,有现成案例,结合需求来订制开发很快。...文件上传 上传图片 对于图片等资源的处理,最开始没有选用Carrierwave的方案,而是使用七牛云存储JS SDK,开始接触的时候,发现并没有多少参考文档,于是想是不是这个东西比较简单也比较少人用,还是...》 Pjax 使用Pjax的过程相对比较顺利,听完Rei大神Turbolinks的讲解之后,还是坚定不移的使用Pjax,值得注意的是使用WiceGrid的时候,会存在初始化组件问题,当时是使用data-skip-pjax...前端JS处理 随着JS的增多,维护起来会越来越难,Rails的项目中并没有做JS模块化,而是将JS用工厂模式汇集到了一起,新的功能代码会放到工厂车间去,使用的时候 new 一个工厂,调用需要的功能即可...开发过程中最拖慢开发进度的不是需求变动,也不是技术点,使用了assets pipeline的话,调试页面的时候资源加载总是很慢。

    2.2K20
    领券