【问题标题】:problems selecting a mutliple select value from database in Rails 3在 Rails 3 中从数据库中选择多项选择值的问题
【发布时间】:2011-11-16 01:37:57
【问题描述】:

非常感谢这里的任何见解。

从 rails 的 form_for 内部,我将多个选择值插入到数据库中,如下所示:

<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
- "

有没有更好、更有用的方法可以将选择的内容存储到数据库中?

【问题讨论】:

    标签: ruby-on-rails forms activerecord multiple-select


    【解决方案1】:

    这有帮助。在我的 matching_profiles 模型中:

    serialize :excluded_sources
    serialize :included_sources
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-01
      • 2015-04-14
      • 1970-01-01
      • 2021-07-18
      • 2019-09-30
      • 1970-01-01
      • 1970-01-01
      • 2010-12-02
      相关资源
      最近更新 更多