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

Rails 5:如何在fields_for中通过strong_params传递collection_select值?

在Rails 5中,可以通过使用strong_params来在fields_for中传递collection_select的值。下面是一个示例:

  1. 首先,在控制器中定义strong_params方法,以允许传递的参数:def strong_params params.require(:model_name).permit(:attribute_name, associated_model_attributes: [:id, :name]) end其中,model_name是你的主模型名称,attribute_name是你要传递的属性名称,associated_model是你的关联模型名称。
  2. 在视图中,使用fields_for和collection_select来创建表单字段:<%= form_for @model_name do |f| %> <%= f.fields_for :associated_model_attributes do |ff| %> <%= ff.collection_select :id, AssociatedModel.all, :id, :name %> <% end %> <%= f.submit %> <% end %>其中,model_name是你的主模型名称,associated_model是你的关联模型名称。
  3. 在控制器的create或update方法中,使用strong_params方法来接收传递的参数:def create @model_name = ModelName.new(strong_params) if @model_name.save # 保存成功的逻辑 else # 保存失败的逻辑 end end其中,ModelName是你的主模型名称。

这样,你就可以通过strong_params方法在fields_for中传递collection_select的值了。

关于Rails的更多信息,你可以参考腾讯云的Rails产品介绍页面:Rails产品介绍

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

相关·内容

  • 何在Ubuntu 14.04上使用MySQL和Ruby on Rails应用程序

    本教程将向您展示如何在Ubuntu 14.04服务器上设置开发Ruby on Rails环境,以允许您的应用程序使用MySQL数据库。首先,我们将介绍如何安装MySQL和MySQL适配器gem。...您可以通过输入以下内容来执 sudo mysql_install_db 之后,我们想要运行一个简单的安全脚本,它将删除一些危险的默认并锁定对我们的数据库系统的访问。...对于其他问题,您只需在每个提示单击“ENTER”键即可接受默认。这将删除一些示例用户和数据库,禁用远程root登录,并加载这些新规则,以便MySQL立即尊重我们所做的更改。...创建新的Rails应用程序 在主目录创建一个新的Rails应用程序。...例如,要运行开发环境(缺省),请使用以下命令: rails server 这将在端口3000上的本地主机上启动Rails应用程序。

    4.9K00

    如何使用RVM在FreeBSD 10.1上安装Ruby on Rails

    本教程将介绍如何在FreeBSD 10.1服务器上使用RVM设置Ruby on Rails开发环境。 课程准备 在开始之前,您只需要: 一个FreeBSD 10.1 腾讯CVM。...如果您不想注销,可以通过键入以下内容来手动启动bash会话: bash 第2步 - 安装RVM 在此步骤,我们将安装RVM。 要下载RVM安装程序,首先需要安装curl。...在这一步,我们将安装Ruby on Rails。...sudo pkg install node-devel 第5步 - 创建测试项目 现在Rails安装完成了,让我们通过在/tmp目录创建一个空项目来测试它。...exit 结论 在本教程,您学习了如何在FreeBSD 10.1服务器上设置Ruby on Rails。您现在可以使用FreeBSD服务器作为Rails项目的开发环境!

    4.6K10

    好雨云帮一周问答集锦(2.6-2.12)

    云帮对于依赖操作系统的支持是不断更新的,最新文档请参考云帮安装手册 Q:如何在云帮上为我的团队增加成员?...A: 在云帮上第一个创建应用的人默认为管理员,管理员可以通过发邮件的方式邀请其他人使用该应用。 邀请功能后台路径:应用详情 - 高级设置 - 权限管理 Q:对内服务是什么意思?什么情况下打开?...用户自己写的API服务:如果用户自己开发了一个REST Full的应用,只是内部调用使用,这时就可以开启对内服务,并设置好别名,这样团队账号的其他应用就可以通过应用别名访问到这个REST Full的应用了...Q:开发环境是Macbook pro,Rails5,如何部署到公有云上面? 对于Rails5.x的支持将在近期上线,敬请期待!...使用Rails2.x、Rails3.x、Rails4.x,可参考文档Rails应用概述

    1.4K60

    何在Ubuntu 18.04上使用RVM安装Ruby on Rails

    项目存储库位于git存储库。 本教程将指导您完成Ruby和Rails安装过程并通过RVM进行设置 课程准备 本教程将通过RVM引导您完成Ruby on Rails安装过程。...首先,通过列出它们来检查哪些版本的Ruby可用: rvm list known 然后,通过RVM安装您需要的特定版本的Ruby,在此特定版本,例如,可以将ruby_version键入为ruby-2.4.0...请注意, rails_version 仅引用版本号,5.1.6。...gem install rails -v rails_version 我们可以通过创建gemsets然后在使用普通gem命令的Rails安装Rails,这样可以让每一个Ruby能够使用各种Rails...结论 我们已经介绍了如何在这里安装RVM和Ruby on Rails的基础知识,以便您可以使用多个Ruby环境。

    8.8K00

    使用Capistrano,Nginx和Puma在Ubuntu 14.04上部署Rails应用程序

    通过在SSH上编写任意工作流脚本,可以将Web应用程序可靠地部署到任意数量的远程计算机,并自动执行预编译和重新启动Rails服务器等常见任务。...Nginx将用于捕获客户端请求并将其传递给正运行Rails的Puma Web服务器。...我们将使用Capistrano自动执行常见的部署任务,因此每次我们必须将新版本的Rails应用程序部署到服务器时,我们都可以通过一些简单的命令来实现。...,您可以通过SSH禁用root登录。...这会侦听端口80上的流量并将请求传递给您的Puma套接字,将nginx日志写入应用程序的“当前”版本,压缩所有资产并在浏览器中将其缓存到最大到期时间,在公共场合提供HTML页面文件夹作为静态文件,并设置默认的最大

    5K40

    Web Hacking 101 中文版 九、应用逻辑漏洞(一)

    在 2012 年 3 月,Egor 通知了 Rails 社区,通常,Rails 会接受所有提交给它的参数,并使用这些来更新数据库记录(取决于开发者的实现。...Rails 核心开发者的想法是,使用 Rails 的 Web 开发者应该负责填补它们的安全间隙,并定义那个能够由用户提交来更新记录。...当核心开发者不同意他的时候,Egor 继续利用 Github 上的认证漏洞,通过猜测和提交参数值,它包含创建日期(如果你熟悉 Rails 并且知道多数数据库记录包含创建和更新日期列,它就不太困难)。...这个例子,API 不验证一些权限,而 Web UI 明显会这么做。因此,商店的管理员,它们不被允许接受邮件提醒,可以通过操作 API 终端来绕过这个安全设置,在它们的 Apple 设备收到提醒。...重要结论 如果你寻找机遇漏洞的验证,要留意凭据传递给站点的地方。虽然这个漏洞通过查看页面源码来实现,你也可以在使用代理拦截器的时候,留意传递的信息。

    4.5K20

    使用SSH隧道保护三层Rails应用程序的通信

    想要了解如何配置Nginx的同学,可以参考这篇教程《如何在Ubuntu 16.04安装Linux,Nginx,MySQL,PHP(LNMP堆栈)》。...使用Puma部署Rails应用程序。请注意,在安装rbenv-vars插件部分,必须设置数据库用户和密码以反映在 数据库服务器 上安装PostgreSQL时使用的。...在完成此步骤时,请考虑三层结构,金字塔结构,底部是 数据库服务器 ,中间是 app-server ,顶部是 Web服务器 。...为了让你的三层结构的Rails应用程序启动并运行,你需要做的就是配置Nginx将请求传递给Puma。...在Web浏览器访问 Web服务器 的公共IP以查看其运行情况: http://web-server_public_IP/tasks 结论 通过本教程,您已经在三层体系结构上部署了Rails应用程序,并保护了从

    5.7K30

    SQLite 的性能优化其实挺难的,但是知道三个技巧让你的应用飞起来!

    SQLite 作为轻量级的数据库,在 Rails 项目中非常常见,特别是开发阶段。但问题来了,SQLite 真有我们想象那么简单吗?它的性能优化又需要注意什么呢?...今天咱们就来聊聊,如何在 SQLite 上做出真正的性能提升。先展示下优化前的数据情况:在看看优化之后的情况:1. SQLite 天生简洁,但也有瓶颈SQLite 的设计理念就是轻量、简单。...Model.update(...)end通过把写操作放在事务,SQLite 可以一次性处理多个操作,减少锁的开销,从而提升性能。这个小技巧既简单又实用,但很多人往往会忽视。2....通过上面提到的几个技巧——使用事务、添加合适的索引、采用批量操作——你完全可以让你的 Rails 应用在开发环境飞起来。...试试这些优化技巧,让你的应用不再“慢得像蜗牛”,而是轻盈燕。希望这篇文章对你有所帮助!如果你有任何关于 SQLite 或 Rails 开发的问题,随时来聊!

    17710

    《Prometheus监控实战》第8章 监控应用程序

    第8章 监控应用程序 首先,考虑的一些高级设计模式和原则 ---- 8.1 应用程序监控入门 应用程序开发存在一种常见的反模式,即把监控和其他运维功能(安全性)视为应用程序的增值组件而非核心功能。...) 测量作业调度、执行和其他周期性事件(cron作业)的数量和时间 测量重要业务和功能性事件的数量和时间,例如正在创建的用户或者支付和销售等交易 8.1.2 监控分类 你应该通过应用程序、方法、函数或类似票房对指标进行分类并清晰地标识它们...然后可以使用Rails控制台来测试客户端,现在通过rails c命令启动一个客户端 代码清单:使用Rails控制台测试Prometheus客户端 ?...在示例,我们通过以config.ru文件内添加exporter(和中间件收集器)来启用指标端点 代码清单:将Prometheus添加到config.ru文件 require 'prometheus/.../*.json refresh_interval: 5m Rails服务器目标 ?

    4.6K11

    用selenium自动化验收测试

    回页首 test runner 模式 Selenium test runner 脚本,也称测试用例(test case),是用 HTML 语言通过一个简单的表布局编写的, 清单 1 所示。...回页首 现实的需求 在接下来的两节(现实的需求 和 现实的用例),我将描述如何在现实场景中使用 Selenium,并针对用 Ruby on Rails 和一点儿 Ajax 技术编写的一个简单的股票报价查看器应用程序编写...接下来的步骤是通过 RubyGems 打包系统安装 Ruby on Rails。为此,只需执行 gem install rails --include-dependencies。...应该看到 Rails 成功启动了, 图 1 所示。 图 1. 从命令提示符下运行 Ruby on Rails 回页首 现实的用例 在本节,我将列出示例应用程序的用例。...图 5 展示了最后这个测试用例。 图 5. 退出用例 所有测试都被添加到 图 6 左侧显示的缺省测试套件。 图 6.

    6.1K30

    如何部署Mina:入门教程

    Mina 在Deployment Server上创建部署者用户 4.使用config / deploy.rb 定义服务器 部署应用程序 定义部署任务 使用任务和子任务 5.示例:部署Rails应用程序...通过Mina,您可以更加便利的运行并同时保持一切井井有条。 生活在没有Rails的世界:Mina可以做到以上所有,甚至更多,并且对Rails没有任何严重的依赖。...set :user, 'deployer' set :port, '22' 部署应用程序 使用Mina,您可以从中央和托管存储库(Github)部署应用程序。...就如之前所述,必要时,您可以通过设置deploy_to和repository参数以及branch来实现此目的。...应用程序 关于Rails应用程序部署示例,请参考:“如何在CentOS 6.5上使用Unicorn和Nginx部署Rails应用程序”。

    4.5K40

    何在CentOS 6.5上使用Unicorn和Nginx部署Rails应用程序

    Unicorn是一个卓越的应用服务器,它包含你的Rails应用程序来处理传入的请求,最好是在它们被前端HTTP服务器(Nginx)过滤和发送之后。...它充当所有请求的第一个入口点,并将它们传递给Unicorn,以便Web应用程序处理并返回响应。...准备Rails应用程序以进行部署 注意:在本节,我们将使用一个非常简单的Ruby On Rails应用程序作为示例。对于应用程序的实际部署,您应该上传代码库并确保安装所有依赖项(即bundle)。...创建示例应用程序 让我们首先在我们的主目录创建一个非常基本的Rails应用程序,以便与Unicorn一起服务。...配置服务器 Unicorn Unicorn可以通过多种方式配置。在本教程,我们将重点介绍关键元素,从头开始创建一个文件,Unicorn将在启动应用程序服务器守护进程时使用该文件。

    4.1K20

    ubuntu14.04下安装ngnix,mediawiki,nodebb,everything,gitlab

    于是搭建了ngnix+mediawiki+nodebb+everything(这个是别人配置好的,只是在ngnix设置了代理)。 后来又添上了gitlab。整理安装记录如下。...简而言之,原因是nginx无法正确的将 *.php 文件的地址传递给php-fpm去解析, 相当于php-fpm接受到了请求,但这请求却指向一个不存在的文件,于是返回空结果。...php-fpm的完整路径就是:/www/test/script.php 我在前面说配置nginx时,写成了 root /www/; 这种写法,对于nginx不成问题, 但它在向php-fpm传递php文件路径时...www.zqb.local访问了 下面通过浏览器访问www.zqb.local/mediawiki 就可以通过网页交互安装mediawiki了。...安装过程,在插件选择时勾上WikiEditor,这个能让编辑器更友好一些,其他的插件也可以根据需要勾一些。

    2.2K10

    何在Ubuntu 14.04上使用PostgreSQL和Ruby on Rails应用程序

    现在您可以输入以下命令退出PostgreSQL控制台: \q 我们现在创建一个Rails应用程序。 创建新的Rails应用程序 在主目录创建一个新的Rails应用程序。...在您喜欢的文本编辑器打开应用程序的数据库配置文件。我们将使用vi: vi config/database.yml 在default部分下,找到显示“pool:5”的行,并在其下添加以下行。...例如,要运行开发环境(缺省),请使用以下命令: rails server 这将在端口3000上的本地主机上启动Rails应用程序。...如果您的Rails应用程序位于远程服务器上,并且您希望通过Web浏览器访问它,则一种简单的方法是将其绑定到服务器的公共IP地址。...首先,查找服务器的公共IP地址,然后将其与rails server命令一起使用(将其替换为突出显示的部分): rails server --binding=server_public_IP 现在,您应该能够通过端口

    3.4K00

    TW洞见〡Ruby Web服务器:这十五年

    cgi.rb 作为Web服务器接口的早期标准,CGI程序在调用过程通过环境变量(GET)或$stdin(POST)传递参数,然后将结果返回至$stdout,从而完成Web服务器和应用程序之间的通信。...Webrick曾被用于Rails核心团队的开发和测试。...当Web服务器接收到HTTP请求时,请求内容和环境信息被通过Socket(本地)或TCP连接(远程)的方式传递至FastCGI服务器进行处理,再通过相反路径返回响应信息。...由于mod_ruby在多个Apache进程只能共享同一个Ruby解释器,意味着当同时运行多个Web应用(Rails)时会发生冲突,存在安全隐患。...LiteSpeed于2013年发布了开源的轻量Web服务器——OpenLiteSpeed(GPL v3),移除了商业版本偏具体业务的功能cPanel等,更倾向于成为通用Web服务器。

    2K100

    数据挖掘工程师:如何通过百度地图API抓取建筑物周边位置、房价信息

    因此,本文的目标是用一个rails应用配合js脚本来实现这种自动化抓取和储存,思路是js脚本负责与百度地图Api交互,rails服务器端负责储存抓取的数据,js和rails服务器用ajax方式传递数据....前提是rails服务器里已经有相应的房屋数据,房屋的街道地址,小区名字等. 接下来需要做的就是为周边信息数据建表以及相应的关联表(因为它们为多对多关系) ?...2.流程详解 js代码在用户浏览器执行,因此爬取的主要部分逻辑都需要写在js脚本里,而rails服务器端需要完成的是获得当前需要抓取的房屋数据以及储存js抓取的数据。...3.2 服务器端(rails controller) SpidersController 1.return_next: 通过类变量@@house_id确定当前需要查询的房屋id,这个全局id变量随着return_text...,维度以及名字; obj为类名,Bus, Subway, 通过find_by()方法查询这个经度和维度是否已经存在,若已经存在此记录, 说明之前存过了,因为同一片区域的房子可能会有公有的基础设施; 若不存在

    4K90
    领券