合并两个表单rails
基本上我有像@ user1224344这样的问题:
如何在Rails中从同一页面提交多个重复的表单 – 最好只用一个按钮
第一个答案看起来很不错,但我作为rails初学者在我的项目中转换它有问题。 好吧,我有两个具有相同控制器的表单,只需一个提交按钮即可保存:
"canvascontent" %> Date.today %> 'btn btn-small btn-primary', :onclick => "sketch.toDataURL()" %>
"inputbox"%> Date.today %> 'btn btn-small btn-primary'%>
感谢帮助! 特别是在周日晚上(至少在德国这里)
你离我很近。
诀窍是两个表单应该嵌套在提交它们的表单中,这应该是另一个模型。 我不知道你的应用程序是如何组合在一起的,但我会假设患者有很多治疗方法。 你的模型应该包括:
patient.rb
attr_accessible :treatments_attributes, etc... has_many :treatments accepts_nested_attributes_for :treatments
treatment.rb
belongs_to :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 %>
因此,您已经为患者提供了一种表格,即提交两种治疗表格,自动与患者相关联。 我可能搞砸了那里的一些细节,但这是基本的想法。
编辑 – 你可能想看看这个 。 最好将处理表单对象的构建放在控制器中,就像在那个问题中那样。 您可能需要查看Rails API以获取有关accepts_nested_attributes_for的更具体帮助。
另外,如果不清楚,“本地”事物只是将处理表单对象传递给变量名称“form”下的partial,所以在那部分中,你要编写<%= form.label:whatever%>。 ..等等,在那部分内。
如果在控制器中构建表单对象 –
@patient.build_treatments #may not be exactly this, but it's close
– 然后你可以在你的视图中执行此操作:
<%= f.fields_for :treatment do |tf| %>
此外,如果不清楚 ,根据您的上述代码,您的部分将看起来像这样:
<%= form.collection_select :category_id, Category.find(:all), :id, :typ %> <%= form.text_field :content , :id => "inputbox"%> <%= form.text_field :day, :value => Date.today %>
其他可能更直观的布局:
主要观点
<%= form_for @patient do |f| %> <%= render 'treatment_form', form: f %> <% end %>
局部视图
<%= form.fields_for :treatment do |field| %> <% field.label :whatever %> #...
换句话说,你将调用到partial_for里面的fields_for,这可能更有意义。 实际上不应该改变真正有效的方式。
- 有没有办法写数据:{turbolinks:false}数十亿次? 轨道的turbolinks值得吗?
- 有没有更简单的方式来显示$ currency格式?(特别是逗号)我可以将RE与Objective C代码集成吗?
- after_update在哪里调用两次?
- ActiveRecord :: MultiparameterAssignmentErrors是什么意思?
- 带有S3 on Rails 3的回形针/未初始化的常量AWS :: S3 :: Connection
- 为什么我在capistrano生成的文件部署中获得Permission denied错误?
- Rails ActiveRecord和DB规范化
- 使用JRuby将Ruby on Rails应用程序的所有.rb文件编译为.class,将其打包成.war并部署到Java appserver中
- 无法弄清楚是什么导致我的测试失败
- Ruby on Rails:如何将变量设置为常量,常量名称的一部分可以更改?
- Ruby on Rails在资产中寻找css而不是公共/样式表