Ich mache eine Organisatorwebsite, wo jemand ihre Klienten, Projekte, etc. organisieren kann. Aber technische Herausforderung treffend, scheint ich nicht zu wissen, wie man kommt herum (noch).SCHIENEN: Getrennte Benutzer, die den gleichen Inhalt anzeigen, wenn es anders sein sollte
Mein Ziel:
Separate Benutzer in ihrer eigenen Welt leben, wo sie ihre eigenen Kunden zu schaffen, die auf ihre Kunden Seite angezeigt werden, wenn sie angemeldet sind und an die Kunden Seite navigieren.
Aktuelle Challenge:
die DB für separate Benutzer über das Faker Juwel, getrennte Benutzer zeigen zur Zeit die gleichen Kunden-Liste in der Indexansicht nach der Aussaat, wenn sie den Kunden Seite navigieren, wenn ich hoffe, für sie haben unterschiedliche Zeichenfolgen aufgelistet (die verschiedene Kunden)
Was ich versucht:
Ich passe gerade RailsTutorial.org Chp11: Micropost Guide an mein Client-Szenario an und habe versucht, eine SHOW- und INDEX-Funktion im Client-Controller zu erstellen, bin aber immer noch ziemlich unscharf auf der gesamten GET/POST- und Controller-Aktionsszene, wo ich denke ich Ich treffe den technischen Block.
My-Code:
routes.rb
get 'password_resets/newedit'
root 'static_pages#home'
get 'about' => 'static_pages#about'
get 'signup' => 'users#new'
get 'login' => 'sessions#new'
#the page for new session
post 'login' => 'sessions#create'
#creates a new session
delete 'logout' =>'sessions#destroy'
#deletes the session
get 'clients' => 'clients#show'
resources :users
resources :account_activations, only: [:edit]
resources :password_resets, only: [:new, :create, :edit, :update]
end
Clients.html.erb
<%= provide(:title, 'Clients') %>
<div class="clients-container container">
<div class="row">
<!-- Add pagination later for multiple folders over multiple pages -->
<% if @user.clients.any? %>
<%= render @clients %>
<!-- render produces the following code:
from the partial file;
<div class="col-md-2 client-folder" style="margin: 10px" id="client - <%= client.id %>">
<span class="clientName" ><%= client.client_name %></span> <br>
<span class="contactName"><%= client.contact_name %></span>
</div>
-->
<%= will_paginate @microposts %>
<% end %>
</div>
</div>
Clients_controller.rb
class ClientsController < ApplicationController
def show
@user = current_user
@clients = @user.clients.paginate(page: params[:page])
end
end
User_controller.rb
class UsersController < ApplicationController
before_action :logged_in_user, only: [:index, :edit, :update, :destroy]
before_action :correct_user, only: [:edit, :update] #restricted areas
before_action :admin_user, only: :destroy
def index
@users = User.paginate(page: params[:page])
end
def show
@user = User.find(params[:id])
end
def new
@user = User.new
render :layout => 'signup.html.erb'
end
def create
@user = User.new(user_params)
if @user.save
@user.send_activation_email
UserMailer.account_activation(@user).deliver_now
flash[:success] = "Welcome to focus. Please check your e-mail to activate your account."
redirect_to root_url
else
render 'new'
end
end
def edit
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
if @user.update_attributes(user_params)
#Handle a successful update.
flash[:success] = "Your information has been updated."
redirect_to @user
else
render 'edit'
end
end
def destroy
User.find(params[:id]).destroy # destroys users
flash[:success] = "Users deleted"
redirect_to users_url
end
private
#Confirms a logged-in user.
def logged_in_user
unless logged_in?
store_location
#While false...
flash[:danger] = "Please log in."
redirect_to login_url
end
end
#Confirms the correct user.
def correct_user
@user=User.find(params[:id])
redirect_to(root_url) unless current_user?(@user)
#If another user gets access to one user's id#
#Rails gets the user profile id and tests it
#against the id of User logged in current
end
def user_params
# 'strong parameter' to prevent mass assignment vulnerability
# user_params privatize to limits external exposure
params.require(:user).permit(:name,:email,
:password,:password_confirmation)
end
# Confirms admin user
def admin_user
redirect_to(root_url) unless current_user.admin?
end
end
Teilbereich: seed.db
users = User.order(:created_at).take(3)
50.times do
client_name = Faker::Lorem.characters(10)
contact_name = Faker::Lorem.characters(10)
contact_email = Faker::Lorem.characters(10)
contact_phone = Faker::Lorem.characters(10)
client_address = Faker::Lorem.characters(10)
users.each { |user| user.clients.create!(client_name: client_name,
contact_name: contact_name,
contact_email: contact_email,
contact_phone: contact_phone,
client_address: client_address) }
end
Wenn Sie so freundlich sein würde, wie darauf zu hinweisen, was ich nicht sehe technisch würde es sehr geschätzt werden!
bearbeiten; Ich hoffe, dass weitere Bilder helfen:
bearbeiten 2: Anbringen des endgültigen Arbeitscode für alle, die nützlich dank @GoGoCarl ‚s Eingang finden könnte:
brauchtusers = User.order(:created_at).take(3)
50.times do
users.each { |user|
client_name = Faker::Lorem.characters(10)
contact_name = Faker::Lorem.characters(10)
contact_email = Faker::Lorem.characters(10)
contact_phone = Faker::Lorem.characters(10)
client_address = Faker::Lorem.characters(10)
user.clients.create!(client_name: client_name,
contact_name: contact_name,
contact_email: contact_email,
contact_phone: contact_phone,
client_address: client_address) }
end