IT & CODE 이야기

rails에서 scaffold로 웹사이트 만들기 본문

CODE/Ruby on rails

rails에서 scaffold로 웹사이트 만들기

Karoid 2017. 1. 25. 20:34

우선 스케폴딩으로 CRUD 게시판을 구현합니다

rails g scaffold post title:string content:text user_id:integer

여기서 user_id 값은 devise와 연결하기 위한 것입니다.

gem 'devise'
gem 'cancancan'
gem 'rails_db'
gem 'better_errors'

Devise

rails generate devise:install
rails generate devise user
rake db:migrate

위에 두줄에서 기본 설정을 하고 다시 DB를 migrate합니다
로그인이 안되어 있으면 로그인 하는 페이지로 가도록 하기 위해

post_controller.rb

class PostsController < ApplicationController
  before_action :set_post, only: [:show, :edit, :update, :destroy]
  before_action :authenticate_user!
...

before_action :authenticate_user!라는 명령을 추가합니다.

1:N 관계 연결

post.rb
belongs_to :user
user.rb
has_many :posts
posts_controller.rb
...중략...
    def post_params
      params[:post][:user_id] = current_user.id
      params.require(:post).permit(:title, :content, :user_id)
    end

post_params 메소드에 params[:user_id] = current_user.id를 추가해줍니다
그리고 view/posts/_form.html.erb

  <div class="field">
    <%= f.label :user_id %>
    <%= f.number_field :user_id %>
  </div>

요 부분을 지워줍니다! 그러면 article_id 값이 추가됩니다.

Comments