一个活动可以有多种类型的参与者(父母、孩子或一个完整的家庭)。
我的表是:Activity、Parents、Children、family 和 Activity_items 进行加入。路线:activity_items 嵌套在活动下。
Activity_items 有一个 activity_id 字段,用于将参与者链接到活动。他们还有 activity_itemable_id 和 type 来链接父母、孩子或家庭(这里是多态性)
目标是列出特定日期的活动参与者列表。在活动的 view#show 中,您可以看到可以添加参与者的详细信息(创建项目)。
我很确定我的代码不正确:
在 activity_items 控制器中创建操作:
def create
@activity = Activity.find(params[:activity_id])
@activity_item = @activity.activity_items.new(activity_itemable_id: params[:itemable_id], activity_itemable_type: params[:itemable_type])
和视图中的link_to创建这个项目(添加参与者)
<% @parents.each do |p| %>
<li>
<%= link_to "#{p.firstname} #{p.lastname}", activity_activity_items_path(@activity, itemable_id: p.id, itemable_type: p.class.name), method: :post %>
</li>
<% end %>
这是我自己找到的唯一方法来创建具有所需参数的良好活动项目。
基本的 (params[:activity_item]) 不起作用,所以我决定获取上面的参数。
我正在观看关于多态关联的 railscasts,我想知道如何改进我的旧代码。
欢迎任何关于这个问题的文档,我没有找到适合我需要的东西。
谢谢 !