如何在用户和日程表之间建立关联?

时间:2016-02-24 17:18:11

标签: ruby-on-rails

我尝试创建一个关联,允许用户遵循他们感兴趣的计划。

这是我的模特:

class Scheduleship < ActiveRecord::Base
belongs_to :user
belongs_to :schedule
end

和控制器:

class ScheduleshipsController < ApplicationController
    def create
        @scheduleship = current_user.scheduleships.build(schedule_id: params[:id])
        if @scheduleship.save
         flash[:notice] = "Susses Added ."
         redirect_to Posts_url
        end
    end
end

对应的数据库表有两个数据:user_id:schedule_id

我使用link_to方法在用户和日程表之间创建关联

 <%= link_to 'add to schedule', {controller: 'scheduleships',
 action: 'create',
 user_id: current_user.id,
 schedule_id: post.id }, method: :post, class: "btn btn-default btn-sm" %>

但它没有建立联想。

:schedule_id => nil

我该如何解决?

1 个答案:

答案 0 :(得分:1)

您正在从视图中将{?1}}的计划ID发送,但在保存时查询schedule_idparams[:id]

在您的控制器中尝试以下操作:

nil

另外,我觉得def create @scheduleship = current_user.scheduleships.build(schedule_id: params[:schedule_id]) if @scheduleship.save flash[:notice] = "Added successful." redirect_to Posts_url end end 对于协会而言是一个可怕的名字。我可能会选择Scheduleship