我有一个表单来更新属于用户的user_id
。我希望管理员能够编辑用户,但我不想输入= form_for @jog, remote: true do |f|
h2 "Edit Record"
table.ui.single.line.table
tb
tr
td
.ui.input
= f.text_field :distance, placeholder: "distance (meters)"
td
.ui.input
= f.text_field :time, placeholder: "time (minutes)"
- if(current_user.admin?)
td
.ui.input
= f.text_field :user_id, placeholder: "User ID"
td = f.submit "Update", class: "ui button"
,而是从下拉菜单中选择用户的电子邮件。
user_id
以上是我到目前为止所做的,它会自动生效,因为Jog
是user_id
中的一个字段。但是如何使用电子邮件地址填充编辑表单,当我提交表单时如何将其转换为class UserPresenter < BasePresenter
end
class AdminPresenter < BasePresenter
end
class EventPresenter < BasePresenter
end
?
答案 0 :(得分:0)
这里有一个选择下拉列表,其中一个字段可见,但另一个字段传递给表单:
= f.select :user_id, User.all.map{|u| [u.email, u.id]}, {}, { class: "ui compact selection dropdown" }
课程内容适用于语义用户界面,如果您没有使用该框架,则不需要。
答案 1 :(得分:0)
此处定义的css类来自Semantic UI。通过搜索类,您可以轻松搜索下拉列表。虽然{selected: @jog.user-id}
选项可以在您决定编辑该字段时随时选择用户。
<%= f.select(:user_id , User.all.collect { |user| [ user.email, user.id ] }, {selected: @jog.user_id}, {class: "ui dropdown search"} ) %>