首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Rails无法将数据插入数据库

Rails无法将数据插入数据库
EN

Stack Overflow用户
提问于 2018-06-07 02:06:49
回答 1查看 65关注 0票数 0

我正在尝试将数据从labs控制器的索引操作插入到订阅服务器中。这是我的代码。

查看HTML:

代码语言:javascript
复制
<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' %>&nbsp;&nbsp;&nbsp;
                    <div id="subscribe-text">
            <%= f.email_field :email_address,placeholder: "email address",row:"3", :class => 'email_class' %>&nbsp;&nbsp;&nbsp;
          </div>
        <%= f.submit "Subscribe", :class => 'button_class' %>
              <% end %>
      </form>
      </div>

            </div>

主控制器

代码语言:javascript
复制
class LabsController < ApplicationController
  layout "labs"
  def index
    @subscriber = Subscriber.new
  end
end

订户控制器

代码语言:javascript
复制
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

代码语言:javascript
复制
Rails.application.routes.draw do
  resources :subscribers
  root 'labs#index'
  get "home", :to => "labs#index"
end

控制台中的输出

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-07 02:56:22

不要将form_for包装在<form></form>标记中。当你点击"Submit“时,它会返回一个简单的GET请求来获取标记,而不是form_for rails帮助器(被禁用)。

代码语言:javascript
复制
<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' %>&nbsp;&nbsp;&nbsp;
    <div id="subscribe-text">
      <%= f.email_field :email_address, placeholder: "email address",row: "3", class: 'email_class' %>&nbsp;&nbsp;&nbsp;
    </div>
    <%= f.submit "Subscribe", class: 'button_class' %>
  <% end %>
</div>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50726883

复制
相关文章

相似问题

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