首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提交表单时嵌套控制器上的路由错误,databasedotcom-gem

提交表单时嵌套控制器上的路由错误,databasedotcom-gem
EN

Stack Overflow用户
提问于 2013-05-09 08:32:40
回答 1查看 106关注 0票数 0

我正在使用databasedotcom & databasedotcom-rails gem,这样我就可以从表单提交中获得生成Salesforce的线索。在我将控制器嵌套在父控制器下之前,它一直是独立工作的,现在,当我按下submit时,我得到了这个路由错误:

代码语言:javascript
复制
No route matches [POST] "/events/516ee9a0421aa9c44e000001/leads/new"

以下是我的所有代码:

代码语言:javascript
复制
resources :events do
  resources :leads
end

class LeadsController < ApplicationController
   include Databasedotcom::Rails::Controller

  def new
    @lead = Lead.new
    respond_to do |format|
    format.html # new.html.erb
    format.json { render :json => @lead }
    end
 end

 def create
   @lead = Lead.new(params[:lead])
   @lead.event_id = params[:event_id]
   @lead['OwnerId'] = '005b0000000WxqE'   
   @lead['IsConverted'] = false
   @lead['IsUnreadByOwner'] = false
   respond_to do |format|
   if @event_lead.save
    format.html { redirect_to @lead, :notice => 'Lead was successfully created.' }
    format.json { render :json => @lead, :status => :created, :location => @lead }
  else
    format.html { render :action => "new" }
    format.json { render :json => @lead.errors, :status => :unprocessable_entity }
  end
  end
  end
end   

<%= simple_form_for [@event, @lead], url: new_event_lead_path do |f| %>
  <%= f.input :Download_Brochure__c, :check => "true",  :as => :boolean, :as => :hidden %>
  <%= f.input :FirstName %>
  <%= f.input :LastName %>
  <%= f.input :Company %>
  <p>Also interested in:</p>
  <%= f.input :Sponsor_Request__c, :as => :boolean, :label => "Sponsoring" %>
  <%= f.input :Presenting__c, :as => :boolean, :label => "Presenting" %>
  <%= f.input :Newsletter_Signup__c, :as => :boolean, :label => "Newletter" %>
  <%= f.input :Privacy_Policy__c, :as => :boolean, :checked => true, :label => "Would you like to stay updated" %>
  <%= f.button :submit, :label => "Submit" %>
<% end %>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-09 11:27:59

问题出在你的表单上。使用您编写的路由,new_event_lead_path将映射到LeadsController#new操作的GET请求。在命令行上运行rake routes以确认这一点。

您希望将表单提交给LeadsController#create。当您在expression simple_form_for [@event, @lead]中使用Lead的新实例时,Rails将为您设置此设置,前提是您不覆盖url。因此,更新您的表单:

代码语言:javascript
复制
<%= simple_form_for [@event, @lead] do |f| %>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16452453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档