ERROR:未定義方法 - 屬性是提交表單之後NULL(滑軌3.2.13)
undefined method 'function_id' for #<Person:0xa004934>
有一個試驗管理系統。到目前爲止,用戶已經能夠創建新的參與者。現在用戶也應該能夠創建新的人員。該人也應該參加審判。
我們有一個表單來創建一個新的人。在表單中輸入create person
後,只有人員表格記錄可以。但participant
表中的function_id屬性爲NULL。當用戶創建一個人時,只需在participant
表中設置值function_id?所以當創建一個新人時,應始終創建一個參與者。
有表:
- 審判
has_many :participants
- 參與者
belongs_to
人 - 人
has_many participants
...has_many
:試驗中,通過:參與者 - 功能
has_many
參與者
目前爲止的作品:
創建一個新的參與者(id | trial_id | function_id | person_id)以/views/participants/new.html.erb
的形式工作。使用表格/views/persons/new.html.erb
創建一個新人(id | title |姓氏|姓氏等)並不像上面提到的那樣100%。 在表格persons/new.html.erb
中,用戶應該能夠在下拉框中選擇一個選項,該選項是participant
的功能。
我不想要完整的新participant
記錄。我只想要function_id值。
下面是/persons/views/new.html.erb
<%= form_for([@trial, @person]) do |f| %>
<div class="table">
<fieldset>
<div class="table">
<div class="tr">
<div class="th">
<%= f.label t(:function) %>
</div>
<div class="tdsep">:</div>
<div class="td">
<%= f.select :function_id, Function.all.collect {|fu| [fu.german, fu.id]} %>
</div>
</div>
...
編輯
Person模型的一個片段
class Person < ActiveRecord::Base
belongs_to :organization
attr_accessible :organization_id,:title,:prename,:surname,:street,:street_number,:zip_code,:city,:phone,:fax,:email,:organization_description, :participants_attributes
has_many :participants
has_many :trials, through: :participants
PersonsController
class PersonsController < ApplicationController
load_and_authorize_resource :person, :through => :trial, :only => [:destroy]
before_filter :authenticate_user!, :except => [:index, :new, :create, :show]
load_and_authorize_resource :trial
def new
@person = Person.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @person}
end
end
def create
@person = Person.new(params[:person])
@person.trials << @trial
respond_to do |format|
if @person.save
format.html { redirect_to @person, notice: 'Person was successfully created.' }
format.json { render json: @person, status: :created, location: @person }
else
format.html { render action: "new" }
format.json { render json: @person.errors, status: :unprocessable_entity }
end
end
end
提前致謝。
這並不解決問題見here。 #'仍然存在'未定義的方法function_id'。我是否也應該調整視圖? –
你可以用你的人物模型編輯你的文章,並通過你的控制器獲取參數? –
將'''belongs_to:function'''添加到人物模型,將'''function_id'''添加到attr_accessible –