我是ruby on rails的新手,需要使用simple_form gem。到目前为止,我有一个关联,它得到了我想要的值,但当我显示表单时,我看到的是:#用户:0x000001830e64f9a0我想将其更改为我选择的任何值(值将来自数据库(以显示
form.html.erb
<%= simple_form_for(@player) do |f| %>
<%= f.error_notification %>
<%= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? %>
<div class="form-inputs">
<%= f.association :User, as: :select %>
<%= f.input :fname %>
<%= f.input :lname %>
<%= f.input :position %>
<%= f.input :club %>
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
播放器控制器的一部分
class PlayersController < ApplicationController
before_action :set_player, only: %i[ show edit update destroy ]
# GET /players or /players.json
def index
@players = Player.all
end
# GET /players/1 or /players/1.json
def show
end
# GET /players/new
def new
@player = Player.new
@user = User.select(:username)
end
用户模型
class Player < ApplicationRecord
belongs_to :User
end
播放器型号
class User < ApplicationRecord
end
正如max所评论的,将您的表单和belongs_to关系中的用户更改为:User
关于播放器的值,而不是获得对象播放器的值。您应该将您的收藏映射到要显示的特定字段,例如:
Player.all.map(&:fname) for first name
或
Player.all.map(&:whatever_value_you_want_to_show_from_DB)