【问题标题】:Rails, redirect from NEW to CREATERails,从 NEW 重定向到 CREATE
【发布时间】:2010-11-23 01:38:43
【问题描述】:

大家好,我正在编写一个应用程序来处理体育赛事的注册。其中一些赛事每次参赛有多名运动员,而有些则只有一名运动员。我目前正在将运动员派往BoatsController 上的新行动,如下所示:

<%= link_to 'Register', new_event_boat_path(@event) %>

我的问题是,如果 NEW 操作看到该事件只需要每艘船一个用户,我如何将用户直接转发到 CREATE 操作?更简洁地说,如何从操作中生成 POST?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    你不需要做任何花哨的事情。 create 操作只是控制器中的一个方法。您可以像调用任何其他方法一样调用它:

    def new
       if event_only_requires_one_user_per_boat
           create
       else
          #display new form
       end
    end
    

    此外,这种技术可以防止用户进行多次请求,因为它不会使用户重定向。

    【讨论】:

      【解决方案2】:

      您可以改为创建一个方法来封装您的 create 操作中的大部分代码,并从 create(与往常一样使用参数)和从您的特殊情况 in new(从您的用户对象发送数据)调用它。

      【讨论】:

        【解决方案3】:
        def new
           #assuming boats is an array 
           if boats.size > 1
               redirect_to boats_path(:user => params[:user], :boat => params[:boat]), :method => :post
           else
              #new stuff
           end
        end
        

        boats_path 或您尝试创建的任何对象。

        【讨论】:

        • 希望它能成功,但我相信你不知道你将来应该怎么做。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-09
        • 1970-01-01
        • 2022-11-22
        • 2014-01-01
        相关资源
        最近更新 更多