删除第2页上的最后一条记录时,请将用户导航回第1页

时间:2017-07-13 06:06:38

标签: ruby-on-rails kaminari

我在我的rails应用程序上使用Kaminari Gem。

我的当前索引页面包含正确的导航菜单。

def index
  @dogs = Dog.all.page(params[:page]).per(20)
end


def destroy
  if @dog.destroy
    # use this so that if the page got other records, the user got to stay at that navigated page.
    redirect_back fallback_location: dogs_path, flash: { success: 'deleted dog from list' }
  else
    # show some errors
  end
end

当用户在第2页并删除第21条狗记录时,记录被删除,浏览器显示空白页面,没有记录,因为网址指定/dogs?page=2

这是默认行为还是Kaminari或我的方法有问题?我期待Kaminari将用户重定向到1页,因为当前页面不包含任何记录。

感谢。

4 个答案:

答案 0 :(得分:1)

考虑您将狗的索引页面路径设为dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.2.0' }

dogs_path

答案 1 :(得分:0)

您需要在完成删除操作后定义索引URL。我相信你已经完成了以下工作。

redirect_to :back它仍在同一页面上。

您应该使用索引页面网址,而不是返回。

答案 2 :(得分:0)

通常,在Rails 5中,您现在可以使用T 我想这样做,但在空的时候仍然会重定向到同一页面。嗯..

Set<T>()

答案 3 :(得分:0)

你可以使用下面的request.referer作为destroy的示例,首先用session [:return_to] = request.referrer保存referer,然后在destroy之后用redirect_to session.delete(:return_to)返回上一页< / p>

<connectionStrings>
  <add name="MyDB"
    connectionString="Server=tcp:trackingappserver.database.windows.net,1433;Initial Catalog=trackingappdb;Persist Security Info=False;User ID=id;Password=password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
    xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>