我尝试创建一个关联,允许用户遵循他们感兴趣的计划。
这是我的模特:
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
我该如何解决?
答案 0 :(得分:1)
您正在从视图中将{?1}}的计划ID发送,但在保存时查询schedule_id
,params[: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
。