петля на выбранном входном рубине на рельсах - PullRequest
1 голос
/ 16 марта 2019

Я пытаюсь сделать выборочный ввод для всех моих пользователей в ruby ​​on rails, это почти работает, но дело в том, что не получают имя пользователя моего пользователя, но я рендерину что-то вроде этого: #<User:0x007f8cc1024d60>

Я создал 3 пользователей в своей консоли, я вижу их, пока я на консоли rails Я получил это в моем контроллере:

  def new
    @bug = Bug.new
    @users = User.all
  end

Также мои параметры

def bug_params
    params.require(:bug).permit(:owner, :title, :description)
  end

И в моем html:

<%= form_with model: @bug do |form| %>
<%= form.select :owner, @users %>

<%= form.text_field :title, placeholder: "title" %>
<%= form.text_area :description, placeholder: "description" %>
<%= form.submit %>
<% end %>

Может кто-нибудь объяснить мне, что не так?

Ответы [ 2 ]

0 голосов
/ 16 марта 2019

Используйте collection_select для создания выбора из коллекции записей.

<%= form_with model: @bug do |form| %>
  <%= form.collection_select(:owner, @users, :id, :name) %>
  <%= form.text_field :title, placeholder: "title" %>
  <%= form.text_area :description, placeholder: "description" %>
  <%= form.submit %>
<% end %>
0 голосов
/ 16 марта 2019

С помощью select помощника по формам вы возвращаете только коллекцию User экземпляров.

Как указано в документации , вам необходимо собрать какой атрибут User вы хотите передать в качестве значения опции и отображения опции.
Например:

<%= form.select :owner, @users.collect {|u| [ u.name, u.id ] } %>

#=> output
#  <select name="bug[owner]">
#    <option value="1">John</option>
#    <option value="2">Joe</option>
#  </select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...