我正在尝试将数据从labs控制器的索引操作插入到订阅服务器中。这是我的代码。
查看HTML:
<div class="container">
<form id="login">
<div class="subscribe">
<%= form_for @subscriber, :url => url_for(:controller => "subscribers", :action => "create" ), remote: true do |f| %>
<%= f.label :name, 'SUBSCRIBE TO OUR NEWSLETTER' %>
<div id="subscribe-text">
<%= f.email_field :email_address,placeholder: "email address",row:"3", :class => 'email_class' %>
</div>
<%= f.submit "Subscribe", :class => 'button_class' %>
<% end %>
</form>
</div>
</div>
主控制器
class LabsController < ApplicationController
layout "labs"
def index
@subscriber = Subscriber.new
end
end
订户控制器
class SubscribersController < ApplicationController
def create
@subscriber=Subscriber.new(subscriber_params)
if @subscriber.save
redirect_to root_path, notice: "Subscribed Successfully !"
else
redirect_to root_path, notice: "Subscription Failed !"
end
end
private
def subscriber_params
params.require(:subscriber).permit(:email_address)
end
end
routes.rb
Rails.application.routes.draw do
resources :subscribers
root 'labs#index'
get "home", :to => "labs#index"
end
控制台中的输出
Started GET "/home?subscriber%5Bemail_address%5D=ss%40w&commit=Subscribe" for 127.0.0.1 at 2018-06-06 23:19:57 +0530
Processing by LabsController#index as HTML
Parameters: {"subscriber"=>{"email_address"=>"ss@w"}, "commit"=>"Subscribe"}
Rendering labs/index.html.erb within layouts/labs
Rendered labs/index.html.erb within layouts/labs (1.6ms)
Completed 200 OK in 19ms (Views: 18.0ms | ActiveRecord: 0.0ms)
发布于 2018-06-07 02:56:22
不要将form_for
包装在<form></form>
标记中。当你点击"Submit“时,它会返回一个简单的GET请求来获取标记,而不是form_for
rails帮助器(被禁用)。
<div class="container">
<%= form_for @subscriber, url: url_for(controller: "subscribers", action: "create" ), remote: true, html: { id: 'login' } do |f| %>
<%= f.label :name, 'SUBSCRIBE TO OUR NEWSLETTER' %>
<div id="subscribe-text">
<%= f.email_field :email_address, placeholder: "email address",row: "3", class: 'email_class' %>
</div>
<%= f.submit "Subscribe", class: 'button_class' %>
<% end %>
</div>
https://stackoverflow.com/questions/50726883
复制相似问题