rails 콤보 상자를 자동으로 만드는 collectioncheck_boxes
7779 단어 Rails
개시하다
collection_check_나는 박스스라는 아주 편리한 물건이 있다는 것을 알고 사용해 보았다.
예를 들어, 범주를 선택할 때 등록된 범주에서 확인란을 선택할 수 있습니다.
사용법
collection_check_boxes용 rails guides
object 소속 클래스의method의 현재 반환 값을 수집한 checkbox 탭을 되돌려줍니다.
그렇다고 들었습니다.
사용법으로 삼다<%= collection_check_boxes(:article, :tag_ids, Tag.all, :id, :name) do |tag| %>
<%= tag.label do %>
<%= tag.check_box %>
<%= tag.text %>
<% end %>
<% end %>
이렇게 사용하실 수 있어요.
이렇게 하면 기존 레이블의 확인란이 작성됩니다.
실제로 사용해볼게요.
먼저
rails new qiita_collection_check_boxes
rails g model article title
rails g model tag name
rails g model article_tags article:references tag:references
rails db:migrate
rails g controller articles
그렇게 하다
rails routes.열다resources :articles
... 로 삼다
articles_컨트롤러 켜기class ArticlesController < ApplicationController
def index
@articles = Article.all
end
def new
@article = Article.new
end
def create
@article = Article.new(article_params)
if @article.save
redirect_to articles_path
else
render :new
end
end
private
def article_params
params.require(:article).permit(:title, tag_ids: [])
end
end
이런 느낌으로.
여기서 가장 중요한 건 빨대 파라미터를tag_ids: []
장소
아직 구조는 잘 모르지만 컬렉션은check_boxes에서ids를 획득하여 가능한 여러 개로 배열합니다.
그냥 왜 이렇게 자동으로 중간 테이블을 만드는지 모르겠어요.
하지만 어쨌든 이렇게 되면 가운데 테이블도 자동으로 만들어진다.
모델 파일은 이런 느낌이에요.
article_tag.rbclass ArticleTag < ApplicationRecord
belongs_to :article
belongs_to :tag
end
article.rbclass Article < ApplicationRecord
has_many :article_tags
has_many :tags, through: :article_tags
end
tag.rb
class Tag < ApplicationRecord
has_many :article_tags
has_many :articles, through: :article_tags
end
이렇게 하시면 됩니다.
이제 뷰만 할게요.
new.html.erb<%= form_with model: @article, local: true do |f| %>
<%= f.label :title %>
<%= f.text_field :title %>
<%= collection_check_boxes(:article, :tag_ids, Tag.all, :id, :name) do |tag| %>
<%= tag.label do %>
<%= tag.check_box %>
<%= tag.text %>
<% end %>
<% end %>
<%= f.submit %>
<% end %>
collection_check_boxes
object 소속 클래스의method의 현재 반환 값을 수집한 checkbox 탭을 되돌려줍니다.
이렇게 말하지만
Tag.all를 통해 id,name 방법의 반환 값을 가져옵니다.
tag.label에 있어요.text라고 쓰여 있습니다. 이것은 g입니다.name에서 잘 작동하지 않습니다.
이 점도 구조를 잘 모른다.
근데 이렇게 실행하면...
이런 느낌으로 기존 해시태그가 나왔어요.
종결어.
Reference
이 문제에 관하여(rails 콤보 상자를 자동으로 만드는 collectioncheck_boxes), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sibakenY/items/6079605061e2961c9987
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
collection_check_boxes용 rails guides
object 소속 클래스의method의 현재 반환 값을 수집한 checkbox 탭을 되돌려줍니다.
그렇다고 들었습니다.
사용법으로 삼다
<%= collection_check_boxes(:article, :tag_ids, Tag.all, :id, :name) do |tag| %>
<%= tag.label do %>
<%= tag.check_box %>
<%= tag.text %>
<% end %>
<% end %>
이렇게 사용하실 수 있어요.이렇게 하면 기존 레이블의 확인란이 작성됩니다.
실제로 사용해볼게요.
먼저
rails new qiita_collection_check_boxes
rails g model article title
rails g model tag name
rails g model article_tags article:references tag:references
rails db:migrate
rails g controller articles
그렇게 하다
rails routes.열다resources :articles
... 로 삼다
articles_컨트롤러 켜기class ArticlesController < ApplicationController
def index
@articles = Article.all
end
def new
@article = Article.new
end
def create
@article = Article.new(article_params)
if @article.save
redirect_to articles_path
else
render :new
end
end
private
def article_params
params.require(:article).permit(:title, tag_ids: [])
end
end
이런 느낌으로.
여기서 가장 중요한 건 빨대 파라미터를tag_ids: []
장소
아직 구조는 잘 모르지만 컬렉션은check_boxes에서ids를 획득하여 가능한 여러 개로 배열합니다.
그냥 왜 이렇게 자동으로 중간 테이블을 만드는지 모르겠어요.
하지만 어쨌든 이렇게 되면 가운데 테이블도 자동으로 만들어진다.
모델 파일은 이런 느낌이에요.
article_tag.rbclass ArticleTag < ApplicationRecord
belongs_to :article
belongs_to :tag
end
article.rbclass Article < ApplicationRecord
has_many :article_tags
has_many :tags, through: :article_tags
end
tag.rb
class Tag < ApplicationRecord
has_many :article_tags
has_many :articles, through: :article_tags
end
이렇게 하시면 됩니다.
이제 뷰만 할게요.
new.html.erb<%= form_with model: @article, local: true do |f| %>
<%= f.label :title %>
<%= f.text_field :title %>
<%= collection_check_boxes(:article, :tag_ids, Tag.all, :id, :name) do |tag| %>
<%= tag.label do %>
<%= tag.check_box %>
<%= tag.text %>
<% end %>
<% end %>
<%= f.submit %>
<% end %>
collection_check_boxes
object 소속 클래스의method의 현재 반환 값을 수집한 checkbox 탭을 되돌려줍니다.
이렇게 말하지만
Tag.all를 통해 id,name 방법의 반환 값을 가져옵니다.
tag.label에 있어요.text라고 쓰여 있습니다. 이것은 g입니다.name에서 잘 작동하지 않습니다.
이 점도 구조를 잘 모른다.
근데 이렇게 실행하면...
이런 느낌으로 기존 해시태그가 나왔어요.
종결어.
Reference
이 문제에 관하여(rails 콤보 상자를 자동으로 만드는 collectioncheck_boxes), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sibakenY/items/6079605061e2961c9987
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
rails new qiita_collection_check_boxes
rails g model article title
rails g model tag name
rails g model article_tags article:references tag:references
rails db:migrate
rails g controller articles
resources :articles
class ArticlesController < ApplicationController
def index
@articles = Article.all
end
def new
@article = Article.new
end
def create
@article = Article.new(article_params)
if @article.save
redirect_to articles_path
else
render :new
end
end
private
def article_params
params.require(:article).permit(:title, tag_ids: [])
end
end
tag_ids: []
class ArticleTag < ApplicationRecord
belongs_to :article
belongs_to :tag
end
class Article < ApplicationRecord
has_many :article_tags
has_many :tags, through: :article_tags
end
class Tag < ApplicationRecord
has_many :article_tags
has_many :articles, through: :article_tags
end
<%= form_with model: @article, local: true do |f| %>
<%= f.label :title %>
<%= f.text_field :title %>
<%= collection_check_boxes(:article, :tag_ids, Tag.all, :id, :name) do |tag| %>
<%= tag.label do %>
<%= tag.check_box %>
<%= tag.text %>
<% end %>
<% end %>
<%= f.submit %>
<% end %>
Reference
이 문제에 관하여(rails 콤보 상자를 자동으로 만드는 collectioncheck_boxes), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sibakenY/items/6079605061e2961c9987텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)