【问题标题】:Trying to make sure I am modeling cleanly试图确保我的建模干净利落
【发布时间】:2011-03-02 04:05:23
【问题描述】:

我将尝试以不同的方式解释这一点,以便更有意义。在我的系统中有由步骤组成的课程。有许多类型的步骤:视频,测验,文本,调查...等。这些步骤中的每一个都共享通用数据,例如标题、摘要、客户和职位。但每一步都有完全不同的数据模型。测验步骤有许多不同的表格和字段,而文本步骤实际上只有一个额外的字段。因此,我认为单表继承不起作用。

但是当我想一次查看所有步骤并显示和编辑链接时,问题就来了。

由于每种步骤类型都有不同的控制器,我不想在我的控制器中做这样的事情:

if @step.type=="Quiz"
   edit_step_quiz_path(@step.getSpecificStepObject())
elsif @step.type == "Text"
   edit_step_text_path(@step.getSpecificStepObject())
elsif @step.type=="Video"
   edit_step_video_path(@step.getSpecificStepObject())
end

我应该让我的主“步骤”控制器的编辑方法执行逻辑并重定向到适当的位置进行编辑,这样我的视图就干净了吗?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    我假设您的意思是您正在考虑将该代码放在您的视图中,而不是您的控制器中。我会定义一个辅助方法:

    def edit_step_path(step)
      send("edit_step_#{step.type.downcase}_path".to_sym, step.getSpecificStepObject)
    end

    那你可以直接拨打edit_step_path(@step)

    【讨论】:

      【解决方案2】:

      嗨,克里斯, 我认为你走错了路。看看 Ryan Bates 的这个截屏视频。 我不太确定,如果您的模型设计正确。

      http://railscasts.com/episodes/217-multistep-forms

      【讨论】:

        猜你喜欢
        • 2011-11-28
        • 1970-01-01
        • 1970-01-01
        • 2012-11-28
        • 2015-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多