Rails bug - current_page? No route matches
current_page? 사용시 No route 에러 발생 error current_page?(controller: “users”, action: “show”) bug fix current_page?(controller: “users”, action: “show”, id: current_user.id) 아마도 url에서 id값을 가져오는데, root 인 경우엔 id 값이 없어서 에러가 발생 추가적으로 id 값을 전달해서 해결 stackoverflow
Rails - has_and_belongs_to_many
Option distinct 중복 assocation 생성을 금지 class Ingredient < ActiveRecord::Base has_and_belongs_to_many :items, -> {distinct} ingredient.items.size // 1 ingredient.items « new_item ingredient.items « new_item ingredient.items // 2 Method collection.delete(object) assocation관계만 제거. object가 제거되지는 않음 collection.delete_all 모든 association관계 제거. object는 제거되지 않음 irb(main):003:0> Item.find(139).ingredients.delete_all Item Load (0.8ms) SELECT “items”.* FROM “items” WHERE “items”.”id” = $1 LIMIT 1 [[“id”, 139]] Ingredient Load (1.1ms) SELECT DISTINCT “ingredients”.* FROM “ingredients” INNER JOIN “ingredients_items” ON “ingredients”.”id” = “ingredients_items”.”ingredient_id” WHERE “ingredients_items”.”item_id” = $1 [[“item_id”,...
Heroku - app option을 사용하라고 error 발생시
heroku cli를 세팅하는 경우에, 다음과 같은 error가 나올 때가 있음. Run this command from inside an app folder or specify which app to use with --app APP heroku cli는 git remote로 등록된 heroku git repository 주소를 보고 어떤 app인지를 판단함. > git remote origin 머신을 새로 세팅하는 경우 remote에 heroku가 없어서 app을 지정해 달라는 error를 발생시킴 다음과 같이 remote repository를 등록하면 더 이상 -app 옵션이 필요없다. > git remote add heroku YOUR_HEROKU_REPOSITORY > git remote...
Heroku - Deploy시에 자동으로 migration 하기
Profile 을 root directory에 추가 Procfile release: bundle exec rake db:migrate all credit [aspiringwebdev.com][1] [1]: http://aspiringwebdev.com/run-rails-migrations-automatically-on-heroku/
Rails - SSL 제거시 발생한 문제 (config.force_ssl의 비밀)
stackoverflow - Disabling SSL for a Heroku App 에 모든 credit이 있습니다. 문제와 현상 heroku에서 ssl을 설정했다가, ssl 인증서를 지워버림 그 뒤부터 bebetem.herokuapp.com 으로는 접속이 되는데, bebetem.com 으로는 http를 명시해도 https로 redirect되면서 접속이 안됨 heroku logs -t 에서 해당 redirection이 로그로 남지 않음 시도한 방법 우선 rails의 config.force_ssl=false로 변경함 DNS에서 https://www.bebetem.com 으로 forwarding을 해놨기 때문에, 그 때문인 것 같아서 http로 forwarding을 바꿨으나 해결되지 않음 heroku에서 ssl을 사용하면 dns target이 bebetem.herokuapp.com 에서 bebetem.com.herokdns.com 으로 변경되었었음. 그래서...