合并两个表格轨道

2023-12-11

基本上我有同样的问题,比如@user1224344:

如何从 Rails 中的同一页面提交多个重复的表单 - 最好使用一个按钮

第一个答案看起来相当不错,但作为 Rails 初学者,我在将其移植到我的项目中时遇到问题。好的,我有两个具有相同控制器的表单,应该仅使用一个提交按钮保存:

<table width="100%">
<tr>
<%= form_for([@patient, @patient.treatments.build]) do |f| %>
<th><%= f.collection_select :category_id, Category.find(:all), :id, :typ %></th>
<th><%= f.text_field :content %></th>
<th><%= f.hidden_field :note, :id => "canvascontent" %></th>
<th><%= f.text_field :day, :value => Date.today %></th>
<th><%= f.submit  :class => 'btn btn-small btn-primary', :onclick => "sketch.toDataURL()"  %></th>
<th><input type="button" onclick="sketch.clearRecording()" class="btn btn-small btn-danger" value="Löschen"></th>
<% end %>
</tr>
</table>


<table width="100%">
<tr>
<%= form_for([@patient, @patient.treatments.build]) do |f| %>
<th><%= f.collection_select :category_id, Category.find(:all), :id, :typ %></th>
<th><%= f.text_field :content , :id => "inputbox"%></th>
<th><%= f.text_field :day, :value => Date.today %></th>
<th><%= f.submit  :class => 'btn btn-small btn-primary'%></th>
<% end %>
</tr>
</table>

感谢帮助!尤其是周日晚上(至少在德国是这样)


你已经很接近了。

诀窍是两种形式都应该是nested在提交它们的表单中,这应该是另一个模型。我不知道你的应用程序是如何组合在一起的,但我假设患者有很多治疗。您的模型应包含以下内容:

病人.rb

attr_accessible :treatments_attributes, etc...
has_many :treatments
accepts_nested_attributes_for :treatments

治疗.rb

belongs_to :patient

如你看到的,patient接受其属性治疗(因此是该模型中的第三行和第一行)。因此,您实际上需要将治疗表格包装在患者表格中,以便您可以使用以下命令提交患者表格它的嵌套处理。像这样的事情:

<%= form_for @patient do |f| %>
  <%= f.fields_for @patient.build_treatment do |tf| %>
    <%= render 'treatment_form', locals: { form: tf } %>
  <% end %>
  <%= f.fields_for @patient.build_treatment do |tf| %>
    <%= render 'treatment_form', locals: { form: tf } %>
  <% end %>
  <%= f.submit %>
<% end %>

所以你有一张表格patient提交两种治疗表格,自动与患者关联。我可能搞砸了一些细节,但这就是基本想法。

EDIT——你可能想检查一下this out。最好将处理表单对象的构建放入控制器中,就像在该问题中所做的那样。您可能想查看Rails API 有关 Accepts_nested_attributes_for 的更多具体帮助。

另外,如果不清楚,“locals”只是将处理表单对象传递给变量名“form”下的部分,因此在该部分中,您可以编写 。 ..等,在该部分内。

如果您在控制器中构建表单对象——

@patient.build_treatments #may not be exactly this, but it's close

-- 那么你可以在你看来这样做:

<%= f.fields_for :treatment do |tf| %>

另外,如果不清楚的话,根据上面的代码,您的部分看起来像这样:

<table width="100%">
  <tr>
    <th><%= form.collection_select :category_id, Category.find(:all), :id, :typ %></th>
    <th><%= form.text_field :content , :id => "inputbox"%></th>
    <th><%= form.text_field :day, :value => Date.today %></th>
  </tr>
</table>

其他可能更直观的布局:

主视图

<%= form_for @patient do |f| %>
  <%= render 'treatment_form', form: f %>
<% end %>

局部视图

<%= form.fields_for :treatment do |field| %>
  <% field.label :whatever %> #...

换句话说,您可以将调用移至部分内部的 fields_for ,这可能更有意义。实际上不应该改变任何事情的实际运作方式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

合并两个表格轨道 的相关文章

  • 运行“bundle install”失败并要求我运行“bundle install”

    事实上 当从我从 git 存储库克隆的现有 Rails 应用程序内部运行时 所有与 gem 相关的命令都会导致相同的错误消息 bundle install Could not find tzinfo 0 3 27 in any of the
  • 如何将 image_tag 与 bootstrap class: "img-responsive" 一起使用?第11章

    我问这个问题的原因是为了解决一个非常烦人的语法错误 我正在使用第 11 章 这样我就可以在我的新网站上使用图像构建一个博客部分 除了我尝试向此行添加 class img responsive 之外 一切都正常 我只是无法弄清楚添加类的正确语
  • Rails cron 每当捆绑:命令未找到

    我尝试使用 每当 每天执行一次耙子任务 我收到这个错误 bin bash bundle command not found home app rvm rubies ruby 1 9 2 p180 lib ruby site ruby 1 9
  • 对同一类型的多个项目使用“引用”

    因此 我正在自学 Ruby on Rails 并具有 PHP 背景 我编写了一个草率的 概念验证的 PHP 应用程序 名为 2NDP http rezich com storybored 我想在 Ruby on Rails 中重新创建它 但
  • Heroku dyno/worker 在开始时崩溃

    我有一个用 Rails 编写的应用程序 部署在 Heroku 上 我以前一直在开发1个web dyno 但是今天我发布了应用程序 流量相当大 所以我决定增加到4个web dyno和1个worker dyno 我不知道为什么当我这样做时总是h
  • 葡萄错误处理策略?

    我正在使用 Grape 和 Rails 创建 REST API 我已经有了基本的架构 并且正在寻找可以 清理 东西的地方 其中之一是错误处理 处理 我目前正在修复整个 API 的 root rb GRAPE API 基类 文件中的错误 我对
  • 使用 gem 添加辅助方法

    我找到了很多有关添加表单辅助方法的信息 请参阅我的其他问题之一 但我找不到有关添加辅助方法的任何信息 就好像它们是在application helper rb 我尝试过复制application helper rb从 Rails 应用程序到
  • 将对象数组转换为 ActiveRecord::Relation

    我有一个对象数组 我们称其为Indicator 我想运行 Indicator 类方法 def self subjects该数组上的种类 范围等 我知道在一组对象上运行类方法的唯一方法是让它们成为 ActiveRecord Relation
  • jruby-openssl 中已初始化常量

    当在 Torquebox 上运行我的 Rails 应用程序时 我得到了很多 already initialized constant 警告源自gems jruby openssl 0 8 2 lib shared jruby openssl
  • 设计没有路由与指定删除的链接中的 [GET]“/users/sign_out”匹配

    因此 我四处寻找解决此问题的方法 大多数人似乎都说了同样的话 但对解决我的问题没有多大作用 我已在链接中指定了删除方法 但路由错误表明这是一个 GET 请求 知道为什么下面的链接最终会覆盖 忽略方法声明吗 Routes devise for
  • Bundler 找不到 gem“rack”的兼容版本:

    我是 Ruby 新手 但实际上如果我不想安装 Redmine 我就不需要它 我正在按照以下说明进行操作http www redmine org projects redmine wiki HowTo install Redmine on C
  • 将 mongoid 会话设置为只读

    我有不同的会话mongoid yml 其中一个会话提供来自静态 mongo 数据库的数据 我想知道是否有可能以只读模式 加载 会话 以便不进行任何更改save create destroy or destroy all可以制作 我的mong
  • ActiveStorage::FileNotFoundError 但文件确实存在

    我正在开发这个 Rails 6 0 21 应用程序 ruby 2 5 5 并使用 puma 3 12 2 作为开发 Web 服务器和具有本地磁盘服务的 ActiveStorage 我的应用程序时不时地出错ActiveStorage File
  • 如何向 ActiveRecord 集合添加方法?

    我想为特定模型的所有集合添加一个方法 假设我想添加方法my complicated averaging method到 WeatherData 集合 WeatherData all limit 3 my complicated averag
  • 如何在同一视图中渲染两个分页且可 ajax 的集合?

    在 Rails 3 2 索引视图中 我正在渲染两个部分 并且在部分 Show some fields 分页不起作用 如果我改变will paginate要获取实例变量 分页可以工作 但是集合错误 当调用部分时 如何将
  • 如何将上传的二进制文件 (ASCII-8BIT) 嵌入 XML (UTF-8) 中?

    我有一个通过常规上传的文件form for 这给了我一个ActionDispatch Http UploadedFile我可以调用的 params 哈希中的对象 read来获取内容 我现在需要将该文件嵌入到 XML 文档中 我现在使用常规
  • 如何在 Rails 中对不同用户建模

    Question 我有一个带有内置授权和身份验证逻辑的用户模型 现在我意识到我拥有三种不同类型的用户 我想存储每个人的不同信息 Rails 中处理这个问题的最佳方法是什么 基于当前阅读的想法 我看过 STI 但从我读到的内容来看 它是不合适
  • 通过sprocket动态渲染sass文件

    我想从助手那里渲染一些变量 scss erb模板使用了image url 萨斯函数 template scss erb background image image url 到目前为止 ERB 部分很简单 利用这个堆栈溢出答案 https
  • 为什么这段 Ruby 代码无法写入日志文件?

    一旦脚本被守护 记录器就无法再写入文件 那么我应该如何以及何时初始化日志呢 require rubygems require daemons require logging def create new logger logger Logg
  • 如何从我的网站在 Facebook 上发布新闻源

    我有一个网站 允许用户通过 RPX 系统使用 Facebook 登录 ID 登录 当用户在我的网站上发表评论时 我希望它也能自动在他们的 Facebook 墙上发布评论 我如何使用 Rails 来做到这一点 我已经学习 facebooker

随机推荐

  • php 中的 !$page == false 还是 $page ?

    我看到下面的代码使用了 if page false 如果我使用 if page 有什么区别 if id check that page exists page dbRow SELECT FROM pages WHERE id id if p
  • 如何在 React Native 的 组件中插入换行符?

    我想在 React Native 的文本组件中插入一个新行 如 r n 如果我有
  • 如何在 Flink 中将 HashMap 附加到 Configuration 对象?

    我想分享一个HashMap跨 Flink 中的每个节点并允许节点更新该 HashMap 到目前为止我有这个代码 object ParallelStreams val env StreamExecutionEnvironment getExe
  • 如何用C#从oracle数据库填充数据集

    我正在尝试填充 oracle 数据集 NULL 我将其与带有 C 的 NET Framework 2 0 一起使用 这是一个 system data oracleclient 示例http msdn microsoft com en us
  • 如何为 IE、Firefox 和 Chrome 编写网络浏览器插件

    我需要编写一个支持 IE 7 Firefox 3 Chrome 的网络浏览器插件 该插件必须能够将 DirectX 对象放置在网页中 我没有使用插件的经验 我做了一些调查并决定使用 FireBreath 来实现 我无法理解如何将图像放置在插
  • 如何在 D3js 中动态添加图像到圆圈

    我很难弄清楚如何使用数据集中的链接将图像放置在圆圈内 我知道需要一种模式才能将图像添加到节点 related关于此主题的 SO 问题在介绍节点和数据之前附加了定义 图案和图像元素 就我而言 我找不到在选择器函数内附加标签的方法 因为数据是动
  • 如何覆盖testNG中的index.html报告

    我有一个场景 需要将一些自定义消息添加到 index html testNG 报告中 有什么办法可以做到这一点吗 我刚刚创建了一个自定义注释 我想像 DataProvider 一样将其发布到 index html testNG 报告中 到目
  • 将 ImageView 放在布局中的 ImageView 上 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我创建了一个 Android 应用程序 我想将 ImageView 放在 ImageView 上 如何让我成为可能 Thanks 我已经为你创建了代码 请看这是 XML 代码
  • f2py:包装 fortran 模块,该模块利用分布在不同文件中的子例程?

    由于我描述的原因earlier 我需要在Python中使用LAPACKs dgesvd和zgesvd方法 而不是包装在numpy中的方法 有人指出 我可以使用 f2py 来创建我自己的 python 包 问题是 lapack 中的 dges
  • 重写函数类型原型

    我在玩耍并试图覆盖时遇到了一个有趣的行为Function原型 假设我们已经像这样重写了 toString const funcToString Function prototype toString Function prototype t
  • 清理 Oracle 序列

    我广泛使用 SQL Server 但对 Oracle 的经验很少 我接到的任务是 清理 Oracle 数据库中的序列 但我不知道如何安全地完成此任务 我需要确定表中实际的最大值 假设 ID 105 然后查看该 ID 的下一个序列是什么 如果
  • fontello 中的图标字体不适用于 Meteor js

    我已经从 fontello 下载了自定义图标字体 并打算在我的流星应用程序中使用它 我尝试了下载包附带的演示 字体显示正常 这是我的CSS font face font family fontello src url fonts fonte
  • iOS 应用程序:几次崩溃,常见主题为:SIGSEGV 和 _sigtramp

    作为 obj c 的新手 我不擅长阅读堆栈跟踪 但我通常可以找出代码中从哪里开始查找 然而 在测试过程中 其中一位测试人员不断报告多次随机崩溃 我无法确定堆栈跟踪的头或尾 因为它们不指向我自己的任何代码 这里有两个 0 WIT Free 0
  • 如何在 Swift 中将枚举和 switch() 与 UITableViewController 结合使用

    我的 UITableView 有两个部分 所以我为它们创建了一个枚举 private enum TableSections HorizontalSection VerticalSection 如何使用在 numberOfRowsInSect
  • Android Automotive Arm_86 未在虚拟设备中列出

    我一直在开发 Android 汽车应用程序 但由于未知原因尚未设置模拟器 我已经尝试过文档并且this我正在使用金丝雀频道 下载汽车图像后 它没有列在虚拟设备下 我使用的是android studio 4 0 1版本 如何解决这个问题 谢谢
  • 如何在网站上添加实时代码编辑器? [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我正在创建一个需要实时编辑代码 Java c python javascript 等 的网站 我知道 codemirror 我想知道如何在网站上运行代码 例如 W3Schools 自己
  • 矢量 a 、矢量 a[n] 和矢量 a(n) 之间有什么区别?

    我刚刚了解了向量 但对它们的用途感到困惑 请告诉我以下之间有什么区别 vector
  • 存储过程插入两个有关系的表?

    我试图将新行插入两个有关系的表中 我写的存储过程如下 ALTER PROCEDURE InsertUserProfile UserID varchar 10 Pass varchar 50 Enabled int Permission in
  • 集群模式路由网格不工作,默认情况下像主机模式一样工作

    描述 Swarm 模式路由网格不起作用 而是像默认情况下使用主机模式一样工作 我们部署了由 3 个主节点和 8 个工作节点组成的集群 每个节点都位于云服务的不同实例中开放堆栈使用 Terraform 和 Ansible 群和路由网格工作完美
  • 合并两个表格轨道

    基本上我有同样的问题 比如 user1224344 如何从 Rails 中的同一页面提交多个重复的表单 最好使用一个按钮 第一个答案看起来相当不错 但作为 Rails 初学者 我在将其移植到我的项目中时遇到问题 好的 我有两个具有相同控制器