Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails5.1.4中,呼叫POST请求未给出路线匹配[GET]错误_Ruby On Rails_Ruby_Ruby On Rails 5 - Fatal编程技术网

Ruby on rails 在Rails5.1.4中,呼叫POST请求未给出路线匹配[GET]错误

Ruby on rails 在Rails5.1.4中,呼叫POST请求未给出路线匹配[GET]错误,ruby-on-rails,ruby,ruby-on-rails-5,Ruby On Rails,Ruby,Ruby On Rails 5,我有一个订阅SignupController def create @subscription = SubscriptionSignup.new(subscription_params) if @subscription.save redirect_to @subscription else render 'new' end end My routes.rb文件包含 resources 'subscription_signups', only:

我有一个订阅SignupController

 def create
   @subscription = SubscriptionSignup.new(subscription_params)
   if @subscription.save
     redirect_to @subscription
   else
     render 'new'
   end
 end
My routes.rb文件包含

resources 'subscription_signups', only: [:create, :new]
当我呼叫
localhost:3000/subscription\u注册时

没有路由匹配[GET]错误

我对new.hmtl.erb文件的看法我们使用gazelle设计系统作为sass

<div class="SubscriptionSignup">
<div class="SubscriptionSignup-content">
    <form class="simple_form Form Form--protectSubmit">
            <div class="email-signup">
            <%= simple_form_for @subscription, html: { class: "Form Form--protectSubmit" } do |f| %>
                <div class="dr-FormField Form-inputWrapper">
                    <div class="gds-FormField-label">

                            <%= f.input :email, placeholder: "Email address"%>
                                    <%= f.input :password, placeholder: "6 Characters Minimum"%>
                                    <%= f.input :password_confirmation, placeholder: "Same as Password"%>
                                <%= f.input :name%>
                                <%= f.input :address_lane_1%>
                                <%= f.input :address_lane_2%>
                                <%= f.input :city%>
                                <div class="Form-InputGroup">

                                                <%= f.label :state %>
                                                <%= select_tag "state", options_for_select(us_states)%>


                                        <%= f.input :zip%>

                                </div>
                            </label>
                        </div>
                    </div>



                <%= f.button :submit, "Review Order", class: "gds-Button Form-button" %>

            <% end %>

        </div>
    </form>
</div>


如果
@subscription.save
成功,则您的#create操作将重定向到#show,但您没有在路由中定义show操作。您有2个选项(假设错误是由于#创建操作重定向到#显示:

  • 将缺少的show路由添加到routes.rb,如下所示:
    resources'subscription\u signups',仅:[:create,:new,:show]
  • 将流重定向到
    以外的其他位置重定向到@subscription
    (缺少的显示路径)

  • 查看更多信息。

    如果您使用的是简单表单,那么您应该可以这样做

    (:action=>'create',:controller=>'subscription')的url_, :method=>“post”do | f |%>
    我希望这能帮助你

    rake routes的输出是什么?订阅\注册帖子/订阅\注册(:格式)订阅\注册\创建新订阅\注册获取/订阅\注册/新建(:格式)subscription#signups#newBtw如果在SubscriptionSignup模型上调用
    .create
    ,则已将实例保存在那里,如果块没有太多意义,则保存后者。您应该将初始化替换为类似
    @subscription=SubscriptionSignup.new的内容(订阅参数)
    I实际代码为@subscription=SubscriptionSignup.new(订阅参数)很抱歉那边的信息错误,但我无法解决问题仅移动
    :[:创建,:新建]
    或添加到列表中的
    :索引
    :显示
    ,然后本地主机:3000/订阅\u注册将正常工作我无法创建[发布请求],当执行localhost:3000/subscription\u signups/new时,我正在呈现一个新表单,当我填写详细信息并单击“审阅”按钮时,它会再次呈现新表单,但我不会创建。在这种情况下,创建操作流看起来像是在重新呈现新表单的
    else
    块中结束的。我认为您可能有一些验证错误或问题你的
    subscription\u params
    方法有问题。日志怎么说?我在SubscriptonSignup模型类SubscriptionSignupRails.logger.debug(“debug:SUBSCRIPTION-VALID?#{@SUBSCRIPTION.VALID?}”),则结束正在保存的实例
    在#create action中的if块之前,然后在服务器日志中搜索相同的调试消息,那么
    @subscription
    实例是否有效?如果我们在两个不同的控制器上使用@subscription,它会影响应用程序吗?我使用简单的表单,因为在我的视图中,它会给我一个error@ManojParitala我只是更新了一下,我希望这有助于站点将索引但不创建操作它的参数数量错误(给定3,预期为1..2)错误