我使用名为main的父模型和名为temperature的子模型嵌套资源。每个主要可以有许多温度(1到多个)。有没有办法使用form_for和fields_for在一个表单上发布多个温度,每个温度转到不同的主要对象(我想只有一个提交按钮)?以下是我的主要索引视图和主要&温度控制器。谢谢!
<% @mains.each do |main| %>
<tr>
<td>stuff.....</td>
<td><%= form_for main do |f| %>
<%= f.fields_for :temperature do |t| %>
temp: <%= t.text_field :temp %>
<% end %>
<% end %></td>
</tr>
class MainsController < ApplicationController
#stuff
def index
@mains = Main.all
end
private
def main_params
params.require(:main).permit(:freezer_id, :freezer_name, temperatures_attributes: [:id, :main_id, :temp, :date])
end
end
class TemperaturesController < ApplicationController
#stuff
def create
@main = Main.find(params[:main_id])
logger.debug 'testing 1'
@temp = @main.temperatures.create(temperature_params)
if @temp.save
redirect_to main_path(@main)
else
render 'mains/show'
end
end
private
def temperature_params
params.require(:temperature).permit(:temp, :date)
end
end
答案 0 :(得分:0)
您要做的是在数据库上针对不同的主电源进行批量更新/创建。只要require(param)正在执行,Rails就无法在其约定上处理此问题。您需要在控制器中创建一个批量处理程序,以便从数组中的每个权限创建单个哈希值,然后为每个模型验证的响应创建一个处理程序。 不容易做,但可能。 对于APIS,有些引用没有表单,但只要视图创建了适当的哈希,就可以重用它。
http://www.l1ghtm4n.com/post/53259404576/patterns-for-rest-api-bulk-operations
https://github.com/arsduo/batch_api
http://forrst.com/posts/Run_any_rails_RESTful_action_more_than_once_bul-Yb5