0
我對軌道上的編程和ruby都很陌生。我跟着http://ruby.railstutorial.org/,然後我開始從http://railscasts.com開始觀看劇集。我想要做的是「以單一形式處理多個模型」。下面你會看到我的模型和他們的協助,以及我試圖從用戶那裏獲取信息的形式觀點。使用嵌套屬性時的質量分配警告
我的造型就是這樣;
有僱主,僱主有面試和麪試有問題。
Customquestion型號:
class Customquestion < ActiveRecord::Base
attr_accessible :content
belongs_to :interview
validates :content, length: {maximum: 300}
validates :interview_id, presence: true
end
採訪型號:
class Interview < ActiveRecord::Base
attr_accessible :title, :welcome_message
belongs_to :employer
has_many :customquestions, dependent: :destroy
accepts_nested_attributes_for :customquestions
validates :title, presence: true, length: { maximum: 150 }
validates :welcome_message, presence: true, length: { maximum: 600 }
validates :employer_id, presence: true
default_scope order: 'interviews.created_at DESC'
end
表格來創建新的採訪;
<%= provide(:title, 'Create a new interview') %>
<h1>Create New Interview</h1>
<div class="row">
<div class="span6 offset3">
<%= form_for(@interview) do |f| %>
<%= render 'shared/error_messages_interviews' %>
<%= f.label :title, "Tıtle for Interview" %>
<%= f.text_field :title %>
<%= f.label :welcome_message, "Welcome Message for Candidates" %>
<%= f.text_area :welcome_message, rows: 3 %>
<%= f.fields_for :customquestions do |builder| %>
<%= builder.label :content, "Question" %><br />
<%= builder.text_area :content, :rows => 3 %>
<% end %>
<%= f.submit "Create Interview", class: "btn btn-large btn-primary" %>
<% end %>
</div>
</div>
當我填寫表單所需的信息,並提交它,我得到以下錯誤;
Can't mass-assign protected attributes: customquestions_attributes
Application Trace | Framework Trace | Full Trace
app/controllers/interviews_controller.rb:5:in `create'
Request
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"cJuBNzehDbb5A1Zb14BjBfz1eOsjBCDzGhYKT7q6A0k=",
"interview"=>{"title"=>"",
"welcome_message"=>"",
"customquestions_attributes"=>{"0"=>{"content"=>""}}},
"commit"=>"Create Interview"}
我希望我已經提供了足夠的信息,你們要明白什麼是這種情況下的問題。
預先感謝您
問題解決了謝謝,但現在新的問題發生。新問題與此無關,但也許你可能對此有所瞭解。在InterviewController中創建動作並不會獲取面試的ID並將其放入customquestions的數據庫表中。我目前爲訪談控制器創建的動作如下,我知道我應該添加一些內容:'def create @interview = current_employer.interviews.build(params [:interview]) if @acsces.save flash [:成功] =「採訪創建!」 redirect_to @interview else render'new' end end'@ mikhail-d – hayri
@hayri,對不起,我在這裏找不到錯誤。也許我不明白這個問題......如果你堅持不懈 - 隨時提出一個新問題。 –
我真的很擔心,現在當我提交表格時,雖然我填寫了所有字段,但它引發了一個問題,說「Customquestions採訪不能爲空」。我相信這是因爲Interview控制器中缺少一些代碼。正如我在最新評論中發佈的,您可以在Interview Controller中看到我的創建操作,並且我覺得應該爲該創建操作添加一些內容,以使customquestions的數據庫表可以訪問interview_id。現在創建動作並不能獲得interview_id,並且會引發錯誤「Customquestions採訪不能爲空」。 – hayri