如何重定向到同一控制器操作的另一种格式?
How to redirect to another format of the same controller action?
我的 TasksController
中有这个 index
方法:
def index
@tasks = current_account.tasks
@count = @tasks.length
respond_to do |format|
format.html do
...
end
format.zip do
if @count > 100
flash[:notice] = "Please reduce the number of tasks!"
redirect_to :action => "index", :format => "html"
else
DownloadArchive.call(@tasks)
end
end
end
end
如果有超过 100 个任务,我如何呈现索引操作的 html
版本?
我上面的代码不起作用。它不会重定向并显示一条闪现消息,而是下载 html
文件。我不明白为什么。如果可以,请帮助我。
Format zip 将下载一个文件,无论您在块中传递什么。如果您想确定 zip 文件是否可以下载,您需要在处理格式 zip
请求之前执行此操作。您可能需要更改视图代码以不显示下载按钮或处理 zip
请求的任何内容。
def index
@tasks = current_account.tasks
@count = @tasks.length
if @count > 100
flash[:notice] = "Please reduce the number of tasks!"
redirect_to :index and return
end
respond_to do |format|
format.html do
...
end
format.zip do
DownloadArchive.call(@tasks)
end
end
end
end
我的 TasksController
中有这个 index
方法:
def index
@tasks = current_account.tasks
@count = @tasks.length
respond_to do |format|
format.html do
...
end
format.zip do
if @count > 100
flash[:notice] = "Please reduce the number of tasks!"
redirect_to :action => "index", :format => "html"
else
DownloadArchive.call(@tasks)
end
end
end
end
如果有超过 100 个任务,我如何呈现索引操作的 html
版本?
我上面的代码不起作用。它不会重定向并显示一条闪现消息,而是下载 html
文件。我不明白为什么。如果可以,请帮助我。
Format zip 将下载一个文件,无论您在块中传递什么。如果您想确定 zip 文件是否可以下载,您需要在处理格式 zip
请求之前执行此操作。您可能需要更改视图代码以不显示下载按钮或处理 zip
请求的任何内容。
def index
@tasks = current_account.tasks
@count = @tasks.length
if @count > 100
flash[:notice] = "Please reduce the number of tasks!"
redirect_to :index and return
end
respond_to do |format|
format.html do
...
end
format.zip do
DownloadArchive.call(@tasks)
end
end
end
end