我可以使用静态URL显示“显示”操作(没有id参数的路由)

时间:2011-02-22 20:24:39

标签: ruby-on-rails routes action

是否可以为show动作显示静态URL(例如/ coming_soon而不是/ invitations /:id)?

为什么?

我希望在创建操作后,呈现的新视图(/ coming_soon)显示已创建邀请的特定ID。我可以使用get请求执行此操作吗?我是否必须在创建操作中使用全局变量?

作为信息,这是我的邀请控制器:

  def show
    @invitation = Invitation.find(params[:id])
  end

  def new
    @invitation = Invitation.new
  end

  def create
    @invitation = Invitation.new(params[:invitation])
    if @invitation.save
      redirect_to @invitation
    else
      render :action => 'new'
    end
  end

非常感谢你!

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望在创建操作后将用户重定向到邀请控制器的“show”操作。 在show动作(或命名为come_soon)的视图中,您希望能够访问刚刚在创建动作中创建的邀请的ID。

要实现这一点,最简单的方法可能是将ID存储在cookie或会话中,在show动作中读取它然后将其删除。 使用会话时,如果以后需要,可能会遇到水平缩放问题。

答案 1 :(得分:0)

如果我理解你,那么在你的routes.rb中你正在寻找

match '/coming_soon', :to => 'controller_name#show'

还有更多路由帮助,请查看此link