Почему simple_form заполняет эти списки выбора всеми комментариями-комментариями? - PullRequest
1 голос
/ 06 апреля 2011

Итак, у меня есть эта форма для генерации комментариев:

<%= simple_form_for @video, :remote => true do |f| %>
    <%= f.input :comment_title_names, :label => false, :placeholder => "Add a Comments Title" %>
    <%= f.button :submit, :value => 'Add', :id => 'add_comment_title' %>
    <div class='hint'>Let your listeners know what comments you want by adding a guiding title for them. Pose a question, ask for feedback, or anything else!</div>
<% end %>

И это соответствующая часть моей модели видео, которая позволяет создавать комментарии_титры в качестве виртуального атрибута:

attr_accessor :comment_title_names
after_save :assign_comment_titles

def assign_comment_titles
  if @comment_title_names
    self.comment_titles << @comment_title_names.map do |title|
      CommentTitle.find_or_create_by_title(title)
    end
  end
end

Тогда это форма для создания комментария, где пользователь должен выбрать желаемый заголовок комментария:

<%= simple_form_for([@video, @video.comments.new]) do |f| %>
  <%= f.association :comment_title, :label => "Comment Title:", :include_blank => false %>
  <%= f.input :body, :label => false, :placeholder => "Post a comment." %>
  <%= f.button :submit, :value => "Post" %>
<% end %>

Теперь проблема в том, что списки выбора comment_title, сгенерированные <%= f.association :comment_title, :label => "Comment Title:", :include_blank => false %>, по-видимому, заполняют каждый список для каждого видео ВСЕМИ заголовками комментариев, которые были добавлены ко всем видео, вместо того, чтобы заполнять его только добавленными комментариями комментария. к этому конкретному видео. Почему это так и как я могу это исправить?

Ответы [ 2 ]

4 голосов
/ 06 апреля 2011

Может быть, вы хотите что-то подобное?

f.association :comment_title, :collection => @video.comment_titles, ...

0 голосов
/ 07 апреля 2011

По умолчанию simple_form не использует область ассоциации.Посмотрите, как это работает здесь: https://github.com/plataformatec/simple_form/blob/master/lib/simple_form/form_builder.rb#L130

Передайте параметр сбора для ассоциации следующим образом:

f.association :comment_title, :collection => @video.comment_titles, ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...