在rails4形式的两个模型中处理hasMany ... select_tag?

时间:2015-05-20 16:59:53

标签: ruby-on-rails forms ruby-on-rails-4

因此大多数在线示例都显示简单的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?)

0 个答案:

没有答案