【问题标题】:How best to structure a page on which instances of a single model can be created or updated如何最好地构建可以创建或更新单个模型实例的页面
【发布时间】:2012-05-17 13:31:35
【问题描述】:
我正在寻找有关构建以下内容的一些建议。
我想显示一个页面。可以创建或更新 3 个事件。每个事件都有一个特定的名称(打开、关闭、开始)
我希望用户能够创建 1 个或全部 3 个事件。
返回相同的 url 后,我希望显示创建的事件以供用户更新,而未创建的事件可用于创建。
例如。
用户查看事件/新事件
创建事件 - (称为打开)
关闭和启动无操作。
返回事件/新事件时
显示事件(打开)值。待更新。
可以新建事件关闭和启动。
您将如何构建它?我玩弄了实现 find_or_create 方法的想法。这是否应该放在控制器的创建操作中,以替换 .create(params[:e.g])?
非常感谢
罗斯
【问题讨论】:
标签:
ruby-on-rails
ruby-on-rails-3
model-view-controller
【解决方案1】:
您可以在任何操作中执行此操作,看起来您正在尝试将 show 和 new 操作组合为一个操作。我会在一些自定义操作中处理它,然后操纵视图以显示带有指向 eidt 的链接的对象的详细信息,以防有人试图编辑对象,如果对象不存在,那么只显示创建对象的表单而不是显示详细信息和编辑链接。
【解决方案2】:
在您的控制器中 - EventsController:
class EventsController < ApplicationController
def new
@event = Event.new
@events_created = Event.all # to show the events created
在您看来 - events/new.html.haml:
- @events_created.each do |created_event|
%p= "Event: " created_event.title
= form_for @event do |f|
=.... # new event creation form