【Rails】acts-as-taggable-on으로 작성한 태그 기능을 seed 데이터에 도입한다
목적
자신의 앱에 더미 사용자를 만듭니다.
그 때 acts-as-taggable-on으로 작성한 태그의 거동이나 외관의 확인을 해 갑니다.
참고:
Rails에 태그 기능을 붙인다. acts-as-taggable-on 사용
rails acts-as-taggable-on으로 태그를 지정한 후 태그를 사용하여 검색
환경
windows10 홈
우분투 20.04.1 on WSL2
rails 6.0.3
루비 2.6.6
seed 데이터 작성 (실패)
우선 태그 표시 없이 데이터를 만들 수 있는지 시험해 본다.
seeds.rb
50.times do
user = User.create!(
name: Faker::Games::Pokemon.unique.name,
email: Faker::Internet.email,
password: "password",
password_confirmation: "password"
)
end
15.times do |n|
User.each do |user|
user.microposts.create!(
photo: open("./db/fixtures/#{n + 1}.jpeg"),
detail: Faker::Hacker.say_something_smart
)
end
end
무사 데이터가 투입되었으므로, 태그 첨부의 데이터를 투입할 수 있는지 시험해 본다.
seeds.rb (실패 예)
User.limit(5).each do |user| # 5人のユーザーを選んで各々をuserに代入
15.times do |n| # user1人につき15回投稿作成する
user.microposts.create!(
photo: open("./db/fixtures/#{n + 1}.jpeg"),
detail: Faker::Hacker.say_something_smart
)
array = Faker::Food.dish.split("")
array.each{ |tag|
tag_list = ActsAsTaggableOn::Tag.new
tag_list.name = tag
tag_list.save
}
end
end
이것이라면 Faker안에 있는 단어를 공백("")으로 단락지어 배열로 해, 하나하나를 tag_list에 대입해 주는 것이 아닐까 생각하고 있었습니다.
결과, 데이터를 투입할 수 있었지만 각 게시물에 태그가 붙어 있지 않다는 것에....
조사한 바, 아무래도 문자열의 배열화는 할 수 없는 것 같다.
참고 : 배열 같은 문자열을 잘 배열로 변환
seed 데이터 작성 (성공)
어떻게 micropost 인스턴스와 tag_list를 연결하는지 모르겠습니다.
그렇게 생각하면서 이 기사 를 보고 있으면 다음의 인용 부분에서 갑자기 튀었다.
...
product = Product.create (
...
)
product.tag_list.add "tag1", "tag2"
product.save
...
그런가, micropost 인스턴스를 만들 때 동시에 micropost를 정의하면 좋다!
그 후 tag_list도 정의하면 micropost.tag_list에서 micropost와 tag_list를 연결할 수 있다.
seeds.rb
User.limit(5).each do |user| # 5人のユーザーを選んで各々をuserに代入
15.times do |n| # user1人につき15回投稿作成する
micropost = user.microposts.create!(
photo: open("./db/fixtures/#{n + 1}.jpeg"),
detail: Faker::Hacker.say_something_smart
)
tag_list = ActsAsTaggableOn::Tag.new # tag_listを定義
micropost.tag_list = Faker::Food.dish # micropostとtag_listを結びつける
micropost.save
end
end
안전 태그가 있는 게시물 데이터를 만들 수 있습니다.
Reference
이 문제에 관하여(【Rails】acts-as-taggable-on으로 작성한 태그 기능을 seed 데이터에 도입한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/luckylundy/items/1222a3c547bb70ab08f1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)