Skip to content

vaibhavbuccha/Blogger_App_rails

Repository files navigation

README

This README would normally document whatever steps are necessary to get the application up and running.

Things you may want to cover:

  • Ruby version

  • System dependencies

  • Configuration

  • Database creation

  • Database initialization

  • How to run the test suite

  • Services (job queues, cache servers, search engines, etc.)

  • Deployment instructions

  • ...

create project

rails new blogger -d mysql

create models with migrations


rails g model User name:string email:string password_digest:string
  • the above command generate a model User and also a migartion file with fields name,email and password_digest .

  • for create table we have to migrate database.

rake db:migrate

create database entries using seeds


seeds are use for create entries in database. for enteries we have to create a seed which tends to a perticular class with activerecods. for example

User.create(
		:name = "name",
		:email = "email@example.com",
		:password_digest = "password"
	)
  • for create enter use the bellow command
rake db:seed

Routes


get 'profile', to: 'pages#show' # it means  /profile is the route which redirect to pages#show page

install packges


  1. install bootstarp-sass => add package in gem file with version.
gem 'bootstrap-sass', '~> 3.3.5'
gem 'bcrypt', '~> 3.1.7'

it was looking for 3.3.o version than we have to bundle install for update dependencies.


Errors


  1. ActiveRecord::NoDatabaseError => this is due to database isn't found. for create database use the command mentioned below.
rake db:create

the above command create database


debugging


abort checkemail.inspect

figaro

it allows us to use env varieables for install it .

bundle exec figaro install

Send Mail using Mailer

  • step1 Directory config/enviroments/development.rb and config.action_mailer.raise_delivery_errors = false change this to true.

  • step2 Append code at the end of the file.

 config.action_mailer.delivery_method = :smtp  # this tells thats we are using smtp for set mails

# this is the basic configuration for mail send via smtp
 config.action_mailer.smtp_settings = {
     address:              'smtp.gmail.com',
     port:                 587,
     domain:               'example.com',
     user_name:             ENV['gmail_username'], # these are set as enviroment variables
     password:              ENV['gmail_password'],
     authentication:       'plain'
  }

 config.action_mailer.default_url_options = {host: "localhost:3000"}
  • step3 Create rails mailer
rails g mailer <mailer_name>  <method_name>

It creates some files

Image Upload using active storage

 rails active_storage:install

It create a migration file

  rails db:migrate

set relationship in models

	has_one_attached:image

Add file field in our form

<div class="form-group" >
  <%= label_tag :image %>
  <%= f.file_field :image , class: "form-conmtrol"  %>
</div>

set permission for image in Controller

	params.require(:user).permit(:name,:email,:password,:im age)

preview Image

image_tag obj.image

migration

add field to existing table

rails generate migration add_fieldname_to_tablename fieldname:string

rake db:migrate