Ezekiel Hammond Ezekiel Hammond - 4 years ago 87
CSS Question

Adding a RoR registration script into a bootstrap modal

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: Rails 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

max max
Answer Source

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 %>
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download