14
我正在做兩個模型的簡單練習。體育和團隊,定義爲Rails - 以表格形式顯示外鍵引用
rails g scaffold sport name:integer rails g scaffold team name:integer fans:integer sport:references
(注:我使用的支架之所以迅速與零件原型,所以我可以學習/實驗我不熟悉尚未)
問題是,我的「運動」(即外鍵引用)是顯示像下面
所以它得到了奇怪的符號#<blahl blah>
吧...
<%= form_for(@team) do |f| %>
<% if @team.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@team.errors.count, "error") %> prohibited this team from being saved:</h2>
<ul>
<% @team.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :fans %><br />
<%= f.number_field :fans %>
</div>
<div class="field">
<%= f.label :sport %><br />
<%= f.text_field :sport %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
我試過改變一行到@team.sport.name
,但它導致錯誤undefined method 'Ice Hockey' for #<Team:0x3e7e040>
...任何想法如何正確顯示這裏的名字?
感謝@MrYoshiji 。我正在嘗試啓動第一個建議,並且值正確顯示在選擇框中。然而,當我試着保存時,我得到一個'ActiveModel :: MassAssignmentSecurity :: Error',它說'不能大規模分配受保護的屬性:sport_id' – Ricky
我通過添加':sport_id'到我的attr_accessors teams_controller。這是做這件事的正確方法嗎?另外,我嘗試了第二種方法,它可以工作,但我不明白爲什麼。什麼是'Sport.scoped'呢?爲什麼只在'edit'方法中需要?例如,'new'方法也共享相同的'_form.html.erb'視圖,但我沒有在那裏調用'@sports = Sport.scoped',但它仍然可以工作......感謝任何見解 – Ricky