2016-01-22 35 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

我怎么能通过新的调用表格的形式改变可见状态的功能? –

相关问题