Rails 3简单的自定义帖子动作表单

时间:2013-04-20 08:05:49

标签: ruby-on-rails ruby-on-rails-3.2

我在表单控制器操作上遇到ActionView::MissingTemplate错误,不需要查看,因为它将params数据传递给控制器​​,然后控制器将发布API请求。

# Newsletter controller

def index
end

def subscribe
  Gibbon.list_subscribe({:id => "my-list-id", :email_address => params[:email]})
end

在我的路线中:

# Routes
match "/subscribe", to: "newsletter#subscribe", :via => :post

查看我的表单所在的位置

# newsletter/index.html.erb
<%= form_tag subscribe_path, class: "form", remote: true do %>
    <%= text_field_tag :email, nil, :class => 'email', :type=>"email", :placeholder => 'Sign up for newsletter' %>
    <%= submit_tag "Go", class: "submit-button"%>
<% end %>

从时事通讯索引页面有一个表单,我想要它做的就是将用户电子邮件地址的请求发送到我的订阅操作

Error:

Started POST "/subscribe" for 127.0.0.1 at 2013-04-20 18:01:02 +1000
Processing by HomeController#subscribe as JS
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"ZseTNfGI5151hk7fIhQH5/l536hc9/kdARf57352Y=", "email"=>"test-user@email.com", "commit"=>"Go"}
Completed 500 Internal Server Error in 1836ms

ActionView::MissingTemplate (Missing template home/subscribe, application/subscribe with {:locale=>[:en], :formats=>[:js, "application/ecmascript", "application/x-ecmascript", :html, :text, :js, :css, :ics, :csv, :png, :jpeg, :gif, :bmp, :tiff, :mpeg, :xml, :rss, :atom, :yaml, :multipart_form, :url_encoded_form, :json, :pdf, :zip], :handlers=>[:erb, :builder, :coffee]}. Searched in:
  * "/Code/myapp/app/views"
):

以上是我收到的错误。我想知道如何假装这个模板问题,因为该操作不需要视图。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你可以试试这个

def subscribe
  if request.post?
    Gibbon.list_subscribe({:id => "my-list-id", :email_address => params[:email]})
    redirect_to root_url, :notice => 'Success'
  else
    redirect_to some_place
  end
end
路线中的

post "/subscribe", to: "newsletter#subscribe"

检查您的路线以进行双重确认

相关问题