정의 된 태그 목록 내가 가진 제안 및 연구 개발의 :: 필드라는 모델. Randd :: Field 테이블의 title 속성 인 태그를 사용하여 제안서에 태그를 지정하려고합니다.레일 (5) - 보석에 같은 Taggable 행 - 나는 레일 5.</p> <p>과 보석에 관한 법률을 같은 Taggable을 사용하는 방법을 배우려고 노력하고
내 모델이 있습니다
제안
class Proposal < ApplicationRecord
acts_as_taggable_on :randd_maturities, :randd_fields, :randd_purposes, :randd_activities
# acts_as_taggable
# acts_as_taggable_on :skills, :interests
연구 개발의 :: 필드
(제안에 아무런 협회).
내 제안 양식에module ProposalsHelper
include ActsAsTaggableOn::TagsHelper
, 나는 태그 추가하려고 제안 도우미
: 내 제안 컨트롤러에서
<%#= f.select :tag_list %>
<%#= f.input :randd_field_list, collection: @randd_fields, label_method: :title, include_blank: false %>
<%= f.text_field :randd_field_list, input_html: {value: f.object.randd_field_list.to_s} %>
, 나는 randd_field_list의 배열을 허용 한 한 (각각 보유해야 양식을 통해 입력 된 태그 중 하나).
def proposal_params
params.require(:proposal).permit(:title, :randd_maturity_list, :randd_fields_list,
콘솔을 통해 태그를 추가 할 수 있습니다. 나는 이것이 제안서 양식 자체에서 작동하도록 할 수 없다. 콘솔에서 내가 할 수있는 :
는p = Proposal.first
p.randd_field_list = [Randd::Field.last.title, Randd::Field.first.title]
p.save
이 제안에 태그의 배열에 첫 번째와 마지막 연구 개발의 :: 필드의 제목을 추가하기 위해 노력하고 있습니다.
그러나 양식에서이를 달성하는 방법을 알 수 없습니다. 나는 레일의 콘솔에 오류를 표시하지 않습니다. 나는 이것을 파악하는 방법을 알지 못한다.
Taggable On the gem 문서의 행위는 tutorial for editing tags입니다. 태그를 업데이트 할 수 있도록 Randd :: Fields 컨트롤러에 업데이트 방법을 추가하는 것이 좋습니다.
def edit
end
def update
@randd_field_list = ActsAsTaggableOn::Randd::Field.find(params[:id])
respond_to do |format|
if @randd_field_list.update(randd_field_list_params)
format.html { redirect_to root_path, notice: 'Tag was successfully updated.' }
format.json { render :show, status: :ok, location: @randd_field_list.proposal }
else
format.html { render :edit }
format.json { render json: @tag.errors, status: :unprocessable_entity }
end
end
이 수행 아무것도 : 그 조언을 촬영, 나는 나의 연구 개발의 :: FieldsController에 유사한 작업을 추가하려고했습니다. 태그 컨트롤러가 전혀없는 문제인지 또는 이것이 태그 지정 객체 인 모든 컨트롤러에 사용되는 일반 레이블인지 확실하지 않습니다. 제안서 컨트롤러 자체에서 태그 생성 및 업데이트를 처리하는 데 필요한 것이 있습니까 (제 경우의 경우 Randd :: Field 모델에있는 인스턴스의 제목입니까?)
누구나 내가해야 할 일을 볼 수 있습니까? 이 보석에서 제공하는 태깅 기능을 사용하면됩니까? 제가 콘솔에서 할 수 있다면, 코드에서 할 수 있어야한다는 것입니다. 그러나 이것을 구현하는 방법에 관해서는 전혀 모릅니다.
나는이 시도 텍스트
의 배열을 전달하는 배열로 목록 PARAMS을 허용하고, 양식에 태그 목록 필드를 만들 필요가. 내가 보 시도 th randd_field_list : [] 및 randd_fields_list : []. 단수를 사용할 때 - 편집 된 양식을 저장하려고하면 "허용되지 않은 매개 변수 오류가 발생합니다.복수형을 사용하려고하면 다음과 같은 오류 메시지가 나타납니다. # <제안 : 0x007f83c9f147b8>에 대한 정의되지 않은 메소드'randd_fields_list ' 의미 하시겠습니까? randd_field_list – Mel
예, 단수이어야합니다. 양식에서'randd_field_list' 필드는 텍스트 필드이지만 서버는 배열을 기대합니다. 양식 필드를 업데이트해야합니다. http://stackoverflow.com/questions/3089849/ruby-on-rails-submitting-an-array-in-a-form –
감사합니다. 위에서 간단한 형태로 표현한 표현 형식을 사용하는 보석 설명서를 사용하고있었습니다. 그게 틀림 없어. https://github.com/mbleigh/acts-as-taggable-on/wiki/Add-a-tag-field-to-forms-in-Rails--4.2-and-above 대단히 감사합니다. – Mel