2011-04-18 32 views
-1

我是rails新手,我正在尋找一個簡單的頁面,允許用戶列出他們的計算機技能。Ruby on Rails - 表單數據的多個值

我需要通過點擊「添加其他技能」來動態創建字段。我發現了一些可以做到這一點的JS,但是我很難在Rails中將多個字段存儲在單個數據庫條目中。

任何想法?

-

例如:

技能

-MS辦公室

-Mac OS X

-AutoCad

-StackOverflow

添加另一個技能

回答

1

你最好的選擇是在一個新的表添加一個條目,每個技能,而不是一個單一的數據庫條目。

步驟參與這樣的:

  1. 您將有一個名爲「技能」表中,將有文本的主ID和文本字段。
  2. 將您的'用戶'對象加入has_many :skills
  3. 在表格中,每個添加的項目都會有這樣的名稱:user[skills][]。這會在發佈到服務器時添加創建技能對象。

如果您需要保留一個數據庫條目,您可以讓YAML序列化和反序列化一系列技能(未測試太多)。

require 'yaml' 

def update 

    user.skills = ["MS Office", "Mac OS X"].to_yaml 

end 

而且在模板:

<% YAML::load(user.skills).each do |s| %> 
    <%= s %> 
<% end %>