Rails从数据库中选择

时间:2015-08-20 10:12:50

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 select

有人可以解释一下吗? ,它来自红宝石指南

const CArray<CItem*>& Items=
    (ItemsInput!= nullptr)?
        *ItemsInput
    :
        [this]() -> const CArray<CItem*>&
        {
            CArray<CItem*> InnerItems;
            GetContainer().GetInnerItems(InnerItems, NULL, true);
            return (InnerItems);
        } ()
;

我有一个附件模型,我想在创建对象时使用combobox选择它的版本,而且我还想要一个新版本选项。

  

这里有什么附件

<%= collection_select(:person, :city_id, City.all, :id, :name) %>
  

更新:

def change
create_table :attachments do |t|
  t.string :filename
  t.attachment :file
  t.string :version
  t.text :description
  t.timestamps null: false
end

它是这样的,但我不明白,

2 个答案:

答案 0 :(得分:5)

请尝试此操作以避免nil的{​​{1}}值:

version

collection_select如何工作的解释:

collection_select(:f, :attachment_id, Attachment.where.not(version: nil), :id, :version)

有关详细信息,请参阅thisthis

答案 1 :(得分:1)

检查此主题中接受的答案,了解collection_select的工作原理:Can someone explain collection_select to me in clear, simple terms?

在此选择中:

<%= collection_select(:f, :attachment_id, Attachment.all, :id, :version) %> 

显示已创建附件的所有版本,因此如果附件表为空,则会显示空