2016-01-22 38 views
2

我完全停留在如何做到這一點上,希望有人能指出我正確的方向。我有一個rails應用程序,它有機組人員,這是部門的一部分,每個人都有職位。我期望創建一個主列表功能,其中創建一個頁面,其中包含按部門分組的所有船員姓名和他們各自的位置。在創建階段,我希望用戶能夠從列表中刪除他們不想打印的名稱。但是,我不希望實際的船員被刪除。任何見解都會很棒。在另一個模型上調用窗體的記錄

+1

你的問題是什麼?按部門分組組員,或如何打印預期的組員?如果你更新你當前的代碼,以及你堅持的是哪一部分,那更好? –

回答

2

您可以通過運行rails generate migration add_visible_to_crewmembers visible:boolean添加一個名爲:visible場。

添加默認值(true,只要你想的機組人員是正常辨認)遷移:

def up 
    change_column :visible, :boolean, default: true 
end 

def down 
    change_column :visible, :boolean, default: nil 
end 

堅持這些改變你的數據庫,通過運行rake db:migrate

之後,你就可以在你的機組成員模型(apps/models/crewmember.rb)創建範圍只返回可見機組人員,像這樣:

class Crewmember < ActiveRecord::Base 
    belongs_to :department 
    [...] 
    scope :visible, where(visible: true) 
end 

在您的控制器,使用範圍而不是默認的(或使用#all,例如):

def index 
    # Before: 
    # @crewmembers = Crewmember.all 
    # @crewmembers.size => 10 
    @crewmembers = Crewmember.visible 
    # @crewmembers.size => 5 
end 
+0

如果我有一個應用程序的不同部分,我需要管理查看編輯等工作人員;我可以使用Crewmember.visible僅用於callsheets控制器嗎? –

+0

是的。每當你只需要選擇可見的船員,你可以使用Crewmember.visible,無論是在控制器,在另一個模型,課程等。 –

+0

我怎麼能通過新的調用表格的形式改變可見狀態的功能? –

相關問題