2016-02-24 21 views
0

我嘗試創建一個關聯,它允許用戶遵循他們感興趣的時間表。如何在用戶和計劃之間創建關聯?

這裏是我的模型:

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

您從視圖中發送時間表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是關聯一個可怕的名字。我可能會去UserSchedule

+0

我建立了關聯成功,但我不能在'user#show'的視圖上顯示post.id,'<%= d.schedule.title%>'是'nil:class' –

相關問題