Неопределенный метод 'merge' для "test": String - Rails 3.1 - PullRequest
4 голосов
/ 13 сентября 2011

У меня есть коллекция_выбрать:

<%= form_for(@feedback) do |f| %>

<div class="field">
<%= f.label :poster_id %><br />
<%= f.collection_select :feedback, :poster_id, @users, :id, @user.username, :prompt => "Select your username" %><br />
<%= f.number_field :poster_id %>
</div>
<% end %>

Это сообщение об ошибке:

ActionView::Template::Error (undefined method `merge' for "test":String):
    15:     
    16:   <div class="field">
    17:     <%= f.label :poster_id %><br />
    18:     <%= f.collection_select :feedback, :poster_id, @users, :id, @user.username %><br />
    19:     <%= f.number_field :poster_id %>
    20:   </div>
    21:   <div class="field">
  app/views/feedbacks/_form.html.erb:18:in `block in _app_views_feedbacks__form_html_erb__3181571289116259961_2154876620'
  app/views/feedbacks/_form.html.erb:3:in `_app_views_feedbacks__form_html_erb__3181571289116259961_2154876620'

"test" - это имя пользователя, которое было возвращено @user.username.

Как мне это исправить?

Ответы [ 2 ]

11 голосов
/ 13 сентября 2011

подпись для collection_select:

def collection_select method, collection, value_method, text_method, options = {}, html_options = {}

Я не уверен, что вы пытаетесь сделать, может быть, это то, что вы хотите:

<%= f.collection_select :poster_id, @users, :id, :username, :prompt => "Select your username" %><br />
1 голос
/ 19 декабря 2013

Мне приходилось думать о входных данных таким образом, чтобы они имели смысл в моей голове ...

collection_select 'поле модели', 'коллекция опций в раскрывающемся меню', 'поле модели длязначения ',' поле модели для отображения в меню '

Это помогло мне понять

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...