проблемы с выбором значения множественного выбора из базы данных в Rails 3

ЛЮБОЕ понимание здесь очень ценится.

Изнутри form_for в rails я вставляю в базу данных несколько значений select, например:

<div class="new-partner-form">
<%= form_for [:admin, matching_profile.partner, matching_profile],  :html => {:id => "edit_profile", :multipart => true} do |f| %>
<%= f.submit "Submit", :class => "hidden" %>    
  <div class="rounded-block quarter-wide radio-group">
    <h4>Exclude customers from source:</h4>
     <%= f.select :source, User.select(:source).group(:source).order(:source).map {|u| [u.source,u.source]}, {:include_blank => false}, {:multiple => true} %>
    <%= f.error_message_on :source %>
  </div>

Затем я пытаюсь вытащить значение из базы данных следующим образом:

def does_not_contain_source(matching_profiles)
  Expression.select(matching_profiles, :source) do |keyword|
    Rails.logger.info("Keyword is : " + keyword)
    @customer_source_tokenizer ||= Tokenizer.new(User.select(:source).where("id = ?", self.owner_id).map {|u| u.source}[0]) #User.select("source").where("id = ?", self.owner_id).to_s)
    @customer_source_tokenizer.divergent?(keyword)
  end
end

но получаю это:

ExpressionErrors: Bad syntax: --- 
- ""
- B
- ""

это то значение, которое находится в базе данных, но, похоже, оно задыхается, когда я обращаюсь к нему таким образом. Как правильно это сделать?

позвольте мне спросить это так. Выбор пользователя из множественного выбора вставляется в поле db следующим образом:

--- 
- ""
- B
- "

есть ли лучший, более полезный способ сохранить то, что было выбрано в БД?


person Ramy    schedule 16.11.2011    source источник


Ответы (1)


это помогло. В моей модели match_profiles:

serialize :excluded_sources
serialize :included_sources
person Ramy    schedule 22.11.2011