我在rails 7中使用simple_form gem,并试图获得显示我想要什么而不是给定什么的选项



我是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)

最新更新