0

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

4

1 回答 1

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
于 2012-09-30T00:10:52.967 回答