因此大多数在线示例都显示简单的1:1表格。我有一个创建组模型的表单,很好。但该集团可以拥有许多提供商。 (因为组的模型有hasMany:Providers)
因此,在表单中,我列出了组中的所有text_fields。我有一个提交按钮等。
我还有一个select_tag,显示所有可用的提供程序,并将multiple设置为true。我不知道的是如何处理结果?如何知道当我点击保存时,所选择的提供程序将被保存。它是否在Group控制器中我是否在某个地方查看参数?我的选择标签是:
<%= select_tag "organizing_team", options_from_collection_for_select(Provider.all, 'lastname', 'firstname',@group.providers.map{ |j| j.id }), :multiple => true%>
因此我的组控制器的创建是:
def create
@group = Group.new(group_params)
respond_to do |format|
if @group.save
format.html { redirect_to @group, notice: 'Group was successfully created.'}
format.json { render :show, status: :created, location: @group }
else
format.hmtl { render :new }
format.json { render json: @group.errors, status: :unprocessable_entity }
end
end
端
我有点想在创建我的Groups控制器时需要更多的代码来处理从该表单返回的内容(即group_params.organizing_team
或者关闭的东西。也可能更容易,将来......我想我希望创建组处理标准字段...并显示任何提供者(如果有),但是在一个单独的模式中添加/删除组中的提供者,如对话框弹出窗口。不知道我怎么会那样做......这样的轨道n00b。
我的想法是否正确?处理创建控制器中select标签中选择的内容? (以后还会在编辑控制器中?)如果是这样的话...我该怎么做...我是否必须通过那个organizational_team的地图找出所选的内容,以某种方式查找基于的@Providers第一个和最后一个名字(我猜这是所有回来的......)找到提供者并将其添加到组@ group.provider = @providerFound?
(是的伪代码)。
我问这一切,因为我假设:
@group = Group.new(group_params)
不会神奇地知道如何保存应该返回我认为是哈希的提供者&#34; organizing_team&#34; (根据我上面的select_tag?)