Rails:是否可以在“索引”或“显示”视图中放置“创建”表单?

时间:2012-09-29 22:48:54

标签: ruby-on-rails

您好我正在尝试处理我的第一个rails项目,并且想知道是否可以将显示或索引视图(相册)与创建更多相册的表单相结合。 URL是否没有正确的参数来执行此操作?我是否能够在表单上设置操作以使其“创建”并在成功时再次重定向到索引页面?

1 个答案:

答案 0 :(得分:2)

当然,你可以这样做,只需将表单代码放在你想要创建/更新的任何页面上,它就可以工作。

唯一的问题是,在成功或不成功的创建/更新后,操作会将您重定向到:通常从new页面,您将重定向到新创建的记录(show成功时的新记录)以及失败时的new操作(表单字段中的错误)。如果你想从不同的页面创建/更新记录,并在每种情况下将操作重定向到不同的页面,那么你将不得不做更多的工作。

可能的方法是向表单添加一个隐藏参数,并将操作重定向到该表单,并对其进行操作检查并相应地重定向。例如:

VALID_REDIRECT_ACTIONS = ["show", "index"]

def create
  ...
  if @photo.save
    flash[:success] = "Photo successfully created!"
    if VALID_REDIRECT_ACTIONS.include?(params[:redirect])
      redirect_to params[:redirect]
    else
      redirect_to @photo
    end
  else
    ...
  end
end