2017-10-13 1 views
1

내 프로젝트에는 API와 관련 프런트 엔드 파트가 있습니다. 나는 레일 버전 5를 사용하고있다. 저는 두 가지 모델을 만들고 있습니다. 하나는 사용자이고 다른 하나는 자격입니다. 협회는 아래에 주어진다."nested_form"gem 사용시 정의되지 않은 "reflect_on_association"메서드입니다. Rails 5

class User 
    include Her::Model 
    include Her::FileUpload 
    has_file_upload :image_url 

    has_many :videos 
    has_many :qualifications 
    attributes :name, :email, :phone, :image_url, :contact_email, :about, :password, :password_confirmation 

    custom_post :sign_in, :refresh 
    custom_get :me 

    accepts_nested_attributes_for :qualifications 
end 

그리고, 자격 모델은 사용자의 컨트롤러

class Qualification 
    include Her::Model 

    belongs_to :user 
    attributes :school, :degree, :grade, :start_year, :end_year 
end 

내 강력한 PARAMS 내가 nested_form를 제공 한 내 사용자 양식이

<div class="row"> 
    <div class="container"> 
    <div class="signup-bg col-md-12"> 
     <h3 style="color:white;"> General Info </h3> 
     <hr> 
     <%= simple_nested_form_for @user do |f| %> 
      <%= f.input :email, input_html: {class: "input-user-form"} %> 
      <%= f.input :name, input_html: {class: "input-user-form"} %> 
      <%= f.input :phone , input_html: {class: "input-user-form"}%> 
      <%= f.input :contact_email, input_html: {class: "input-user-form"} %> 
      <%= f.input :about, as: :text, input_html: {class: "input-user-form"}%> 
      <label class="control-label">Selected Specializations</label> 
      <ul class="list-group"> 
      <% @user.specializations.each do |sp| %> 
       <li class="list-group-item tags"> 
       <%= check_box_tag "user[specialization_ids][]", sp["id"], true%> 
       <%= sp["name"] %> 
       </li> 
      <% end %> 
      </ul> 
     <h4 style="color:white;"><center>Select Your Specializations</center></h4> 
     <div class="row"> 
      <div class="col-md-12"> 
      <div class="input-group"> 
       <input id="searchText" type="text" class="input-signup" placeholder="Search Specialization" style="z-index:0;"> 
       <span class="input-group-btn"> 
        <button class="btn btn-default btn-go" type="button">Go!</button> 
       </span> 
       </div> 
      <div class="col-md-12 col-sm-12 col-lg-12" id="specializationHolder" style="min-height:85px;"></div> 
      </div> 
     </div> 
     <h3 style="color:white;"> Qualification Info </h3> 
     <hr> 
     <div id="qualification_holder"> 
      <%= f.simple_fields_for :qualifications, @qualification do |g| %> 
      <%= g.input :school,input_html: {class: "input-user-form"} %> 
      <%= g.input :degree, input_html: {class: "input-user-form"} %> 
      <%= g.input :grade, as: :integer, input_html: {class: "input-user-form"} %> 
      <%= g.input :start_year, required: false, as: :string, input_html: {type: :date, class: "datepicker input-user-form"} %> 
      <%= g.input :end_year, required: false, as: :string, input_html: {type: :date, class: "datepicker input-user-form"} %> 
      <% end %> 
     </div> 
     </br> 
     <div class="col-md-4"> 
      <%= f.link_to_add :qualifications, data: {target: "#qualification_holder"}, class: "btn-signup-submit" do %> 
      <b> + </b> Add Qualifications 
      <% end %> 
     </div> 
     <div id="wrapper"> 
      <label class="control-label file optional" for="user_image_url">Profile Picture</label> 
      <input class="file optional" type="file" name="user[image_url]" id="fileUpload"> 
     </div> 
     <div class="form-group text-center"> 
      <button type="submit" class="btn-signup-submit">Save Changes</button> 
     </div> 
     <% end %> 
    </div> 
    </div> 
</div> 

입니다

def user_params 
     user: params.require(:user).permit(:id, :name, :email, :phone, :contact_email, :about,:image_url, 
     {specialization_ids: []}, 
     qualifications_attributes: [:id, :school, :degree, :grade, :start_year, :end_year, :_destroy] 
    end 

입니다 하지만 오류가 발생합니다. 정의되지 않은 오류 "reflect_on_association"은 "link_to_add"를 가리 킵니다. 나는 일주일 동안 여기에 갇혀있다. 그것에 대한 해결책이 있습니까 .. 그렇다면 제발 나를 도와주세요.

미리 감사드립니다.

+0

은'수 : 수 quualifications' 오타? 아마도': 자격 '을 의미했을 것입니다. –

+0

예. 나는 그것을 바꿨다. 그러나 여전히 오류는 동일합니다. –

+0

알겠습니다. 'link_to_add'는 링크 텍스트를 첫번째 매개 변수로 기대합니다. f.link_to_add를 시도해 보셨습니까? "자격을 추가하십시오", : 자격을 받으십시오. –

답변

0

동일한 오류가 발생했습니다. 해결 방법은 클래스 이름에 중첩없이 문제가있는 연결에 class_name 옵션을 추가하는 것입니다. 귀하의 경우에는

, 당신은 시도 할 수 있습니다 :

class User 
    include Her::Model 
    include Her::FileUpload 
    has_file_upload :image_url 

    has_many :videos 
    has_many :qualifications, class_name: "::Qualification" 
    attributes :name, :email, :phone, :image_url, :contact_email, :about, :password, :password_confirmation 

    custom_post :sign_in, :refresh 
    custom_get :me 

    accepts_nested_attributes_for :qualifications 
end 
관련 문제