Adding a RoR registration script into a bootstrap modal

淺唱寂寞╮ 提交于 2019-12-24 10:45:52

问题


so i am trying to create a signup script within a Bootstrap Modal but it fails out.

the same script works on a page of its won, just not sure why it doesnt work here.

is there something special about using bootstrap?

Here is the Error:

Below is the Modal Contents

    <div class="modal fade" id="register-modal" tabindex="-1">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title">Register</h4>
      </div>
       <%= form_for(@user) do |f| %>
        <div class="modal-body">
          <div class="form-group">
            <label for="inputEmail" class="col-sm-2 control-label">Email</label>
            <div class="col-sm-10">
              <%= f.text_field :first_name, :placeholder => "First name" %>
            </div>
          </div>
          <div class="form-group">
            <label for="inputPassword" class="col-sm-2 control-label">Password</label>
            <div class="col-sm-10">
              <%= f.text_field :last_name, :placeholder => "Last name" %>                </div>
          </div>
          <div class="form-group">
            <label for="inputPassword" class="col-sm-2 control-label">Password</label>
            <div class="col-sm-10">
               <%= f.email_field :email, :placeholder => "Email" %>
            </div>
          </div>

      <div class="form-group">
        <label for="inputPassword" class="col-sm-2 control-label">Password</label>
        <div class="col-sm-10">
          <%= f.password_field :password, :placeholder => "Password" %>
        </div>
      </div>
    <div class="modal-footer">
      <%= f.submit "Create an account", class: "btn btn-primary btn-submit" %>
    </div>
  <% end %>
</div>

Here is my Users controller

class UsersController < ApplicationController

  def new
    @user = User.new
  end
end

and the user model

class User < ApplicationRecord

   has_secure_password

end

and finally my db:migrate file for my users

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users do |t|
      t.string :first_name
      t.string :last_name
      t.string :email
      t.string :password_digest

      t.timestamps
    end
  end
end

One more bit of is my routes

Rails.application.routes.draw do
  root 'home#index'

  get 'signup' => 'users#new'
  resources :users
end

回答1:


In Ruby you can reference a instance variable even if it has not been initialized:

irb(main):001:0> @foo
=> nil

Which is exactly what is happening here. If you want to use the same form on a bunch of actions without worrying if the controller sets the @user instance variable you can just use the || (or) operator:

<%= form_for(@user || User.new) do |f| %>
   # ...
<% end %>


来源:https://stackoverflow.com/questions/42079836/adding-a-ror-registration-script-into-a-bootstrap-modal

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!