Friday, 13 September 2013

Ruby on Rails 4, Dynamicly create table for each user

Ruby on Rails 4, Dynamicly create table for each user

I'm new to Rails and I'm creating an Application where users can log in,
and it dynamicly generates a Table where they can make entries. I've
managed to make the login but I don't realize how to create a table which
is assosiated to a user.
my users_controller.rb class:
class UsersController < ApplicationController
before_action :set_user, only: [:show, :edit, :update, :destroy]
# GET /users
# GET /users.json
def index
@users = User.order(:name)
end
# GET /users/1
# GET /users/1.json
def show
end
# GET /users/new
def new
@user = User.new
end
# GET /users/1/edit
def edit
end
# POST /users
# POST /users.json
def create
@user = User.new(user_params)
respond_to do |format|
if @user.save
format.html { redirect_to login_url, notice: "User #{@user.name}
was successfully created." }
format.json { render action: 'show', status: :created, location:
@user }
#HERE I WOULD LIKE TO CREATE A TABLE ASSOSSIATED TO THE USER
@rapport_table = User.rapport_table.create
else
format.html { render action: 'new' }
format.json { render json: @user.errors, status:
:unprocessable_entity }
end
end
end
# PATCH/PUT /users/1
# PATCH/PUT /users/1.json
def update
respond_to do |format|
if @user.update(user_params)
format.html { redirect_to users_url, notice: "User #{@user.name}
was successfully updated." }
format.json { head :no_content }
else
format.html { render action: 'edit' }
format.json { render json: @user.errors, status:
:unprocessable_entity }
end
end
end
# DELETE /users/1
# DELETE /users/1.json
def destroy
@user.destroy
respond_to do |format|
format.html { redirect_to users_url }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_user
@user = User.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white
list through.
def user_params
params.require(:user).permit(:name, :password, :password_confirmation)
end
end
rapport_table.rb
class RapportTable < ActiveRecord::Base
belongs_to :user
end
12341324123_create_rapport_tables.rb
class CreateRapportTables < ActiveRecord::Migration
def self.up
create_table :rapport_tables do |t|
t.date :date
t.text :description
t.integer :time
t.timestamps
end
end
def self.down
drop_table :rapport_tables
end
end
show.html.erb
<p id="notice"><%= notice %></p>
<p>
<strong>Name:</strong>
<%= @user.name %>
</p>
<%= link_to 'Edit', edit_user_path(@user) %> |
<%= link_to 'Back', users_path %>
Thanks in Advance!

No comments:

Post a Comment