Rails 썸네일형 리스트형 Rails에서 Vue에 데이터 전달하기 레일즈에서 Vue로 데이터를 전달해야 할 순간이 있습니다. 그런데 레일즈의 뷰 템플릿 엔진으로는 Vue를 바로 다룰 수가 없기 때문에(제가 모르는 걸 수도 있어요..ㅜㅜ), 값을 전해주기가 조금 힘듭니다. 이럴 때 Vue에게 값을 전달하는 방법을 몇 가지 적어보려고 합니다. HTML의 data속성을 사용해 전달 HTML에는 data라는 속성이 있습니다. 간단한 데이터를 넘길 때 편리합니다. 그치만 위의 링크에도 언급이 되어 있듯 성능이 그다지 좋은 편은 아니라고 하니, 다량의 데이터를 넣는 것은 좋지 않아 보이네요. 아직 Vue가 익숙하지 않아 생각보다 구현에 좀 애를 먹었는데요ㅜㅜ 이렇게 하면 됩니다. # controller def index @user_name = current_user.name en.. 더보기 Ruby default gem 삭제하기 어느 날 Rails를 구동시켰더니 bundler의 버전이 낮다며 업데이트 하라는 문구가 보였습니다. 이미 최신 버전을 쓰고 있는데 자꾸 에러가 떠서 찾아 보니, 로컬에 설치되어 있는 bundler가 문제인 듯 보였습니다(rbenv를 사용하고 있습니다). 그런데 bundler을 지우려고 했더니 default gem이라 삭제가 안 된다네요. 열심히 인터넷을 돌고 돌아 지울 수 있는 방법을 찾아 냈습니다. bundler의 버전 확인 % gem list | grep bundler bundler (default: 2.1.2)default라고 써 있는 버전이 문제였습니다. default버전 삭제 % cd ~/.rbenv/versions/[루비 버전]/lib/ruby/gems/[루비 버전]/specifications.. 더보기 Bundler MYSQL2 설치 중 에러 해결하기 개인 프로젝트를 위해 프로젝트를 생성하고, mysql2를 설치하기로 했습니다. 그런데 자꾸 에러가 뜨네요. current directory: /Users/hee/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/mysql2-0.5.3/ext/mysql2 make "DESTDIR=" compiling client.c client.c:787:14: warning: incompatible pointer types passing 'VALUE (void *)' (aka 'unsigned long (void *)') to parameter of type 'VALUE (*)(VALUE)' (aka 'unsigned long (*)(u.. 더보기 Mac의 zsh에서 rbenv 사용하기 맥 버전이 10.15(카탈리나)로 바뀌고 기본 쉘이 zsh로 바뀌면서 여러 환경 설정을 바꿔 줄 필요가 생겼습니다.(어쩐지 안되더라..) 다룰 일이 없어서 이런 기초적인 부분에서도 한참 헤맸습니다. 1. rbenv를 설치 brew로 설치합니다. rbenv설치가 돼 있으면 생략합니다. ~ % brew install rbenv ruby-build 2. .zshrc 파일을 작성 후 불러오기 홈(~)에 파일을 작성해 줍니다. ~ % vim .zshrc # .zshrc export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init - zsh)" # 저장 후 실행 ~ % source ~/.zshrc zsrhc같은 오타를 조심합시다. 3. 루비 설치 및 버전 설정 ~ % rben.. 더보기 Ruby : 기초(6) 클래스 선언 클래스는 def 클래스명 - end로 선언합니다. 기초 1의 내용과 같이, 클래스명은 파스칼 케이스로 짓는 것이 관례입니다. 함수 스코프와는 관계 없는 인스턴스 변수 클래스 내에서 사용되는 인스턴스 변수(@var)는 선언 위치와 상관 없이 클래스 내의 어디에서든 접근할 수 있습니다. class Apple def set_phone(phone_name) @phone = phone_name end def print_phone puts @phone # 접근이 안될 것 같지만 가능하다 end end 접근제어 기본적으로 클래스 내 모든 메소드는 public이지만 필요에 의해 바꿀 수 있습니다. ... public def func1 ... end private def func2 ... end protected .. 더보기 Ruby : 기초(5) 메소드 메소드(method) 루비의 함수는 클래스에 들어있든 아니든 메소드(경우에 따라 메서드)라고 불립니다. # 인자가 없으면 괄호를 생략할 수 있다 # 기본값이 없으면 생략할 수 있다 def 메소드명(인자명=기본값) # 코드블럭 end블록의 표시 방법 루비에서 블록을 표시하는 방법은 두 가지가 있습니다. 중괄호({ })와 do-end입니다. 중괄호는 한 줄로 정의할 때 사용됩니다. 반환 값은 따로 지정하지 않아도 괜찮다 특별히 지정되지 않은 경우, 메소드는 마지막 줄의 결과값을 반환합니다. 가변 매개 변수(argument) 루비의 메소드는 한 매개 변수에 별표(*)를 붙임으로써 여러 인자(parameter)를 받을 수 있습니다. 모호함을 막기 위해 가변 매개 변수는 한 개만 허용됩니다. def functio.. 더보기 Ruby : 기초(4) 해시와 심볼 해시 해시는 컬렉션을 지원합니다. 해시의 내부는 키와 키에 해당하는 값이 들어 있습니다. hash = { :apple => "iPhone", # 키= :apple / 값= "iPhone" "samsung" => "Galaxy", # 키= "samsung" / 값= "Galaxy" google: "pixel" # 키= :google / 값= "pixel" } 예시 코드를 보시면 아시겠지만, 해시를 만들 때 값을 정의하는 방법이 총 세 가지가 있습니다. 첫 번째는 심볼이라는 값을 키로 설정하는 방법, 두 번째는 문자열을 키로 설정하는 방법, 세 번째는 첫 번째와 동일한 방법(축약 표현)입니다. 해시 : 값 추가, 접근 해시에 값을 추가할 때는 해시변수[키] = 값형식으로 넣을 수 있습니다. hash = Ha.. 더보기 Ruby : 기초(3) 반복 while과 until 루비의 조건문에 if, unless가 있던 것처럼, while에도 반대에 해당하는 until이라는 것이 있습니다. until은 조건이 거짓일 때 반복되는 반복문입니다. i = 3 until i < 1 print i end # 3 2 1for 루비에는 전통적으로 사용되어 오던 for문(초기식; 조건식; 증감식)이 없고, 대신 for-in문이 있습니다. 규칙은 for 변수 in 범위값(Range)입니다. 예를 들어, 단순 반복을 5회 하고 싶다면 for num in 1..5 # doSomething end으로 5회 반복이 가능합니다. 그리고 이러한 반복문을 제어하는 명령어로 break와 next(continue가 아닙니다)를 제공합니다. loop 단순 반복문(조건에 따른 break가 .. 더보기 이전 1 2 다음