Ruby on rails Rails正在保存0而不是模型集合中的字符串\u select
我一直在尝试创建一个基本的rails应用程序。我用generate创建了一个基本的脚手架,我在球员和球队之间建立了一个归属关系,所以球员属于球队,球队有很多球员 我的表单视图如下所示Ruby on rails Rails正在保存0而不是模型集合中的字符串\u select,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我一直在尝试创建一个基本的rails应用程序。我用generate创建了一个基本的脚手架,我在球员和球队之间建立了一个归属关系,所以球员属于球队,球队有很多球员 我的表单视图如下所示 <%= form_for(@team) do |f| %> <% if @team.errors.any? %> <div id="error_explanation"> <h2><%= pluralize(@team.errors.co
<%= 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 :Playerone %><br />
<%= f.collection_select :Playerone, Player.all, :firstname, :firstname %>
</div>
<div class="field">
<%= f.label :Playertwo %><br />
<%= f.collection_select :Playertwo, Player.all, :firstname, :firstname %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
当我尝试创建一个新团队时,我会得到下拉列表,因为我希望这些下拉列表中包含要选择的球员的名字,但当保存时,它会将0保存为记录
上市团队
Playerone Playertwo
0 0显示编辑销毁
新团队
最初我是这样选择收藏的
这会插入ID,但我希望插入文本
我查阅了大量的文档,并在我还在学习的过程中找到了特朗普
感谢您的帮助:那么这取决于您的迁移。如果在数据库中创建了整数字段,则保存字符串将保存0 可以将迁移更改为使用字符串而不是整数 您可以使用b,使用id,并通过查找名称来显示名称
f.collection_select :Playertwo, Player.all, :id, :firstname
你可以从playerone和playertwo所在的团队中获取名称
class Team
belongs_to :playerone, :class_name => "Player"
belongs_to :playertwo, :class_name => "Player"
end
<%= team.playerone.firstname %>
或者你可以把名字委托给球员
class Team
belongs_to :playerone, :class_name => "Player"
belongs_to :playertwo, :class_name => "Player"
delegate :firstname, :to => :playerone, :prefix => true, :allow_nil => true
delegate :firstname, :to => :playertwo, :prefix => true, :allow_nil => true
end
<%= team.playerone_firstname %>
或者,您可以使用c语言,它使用一个整数。请查阅文件
我提到我最初有:id,但这将放置玩家的id,而我想要玩家名字的字符串。这可能吗?太棒了!谢谢一群人!最初我有一个整数作为值,然后我将迁移更改为string并执行rake db:reset。很多文档让我有点困惑,因为我是rails的新手。这是一个巨大的帮助。好吧,我改变了我的团队模型,使之看起来像这个类团队