2013-07-19 33 views
0

堆棧溢出你好的人如何查詢軌的模型與陣列

我是比較新的軌道平臺,需要一些幫助,模型查詢

這裏是我的代碼:

def create 
@project = Project.new(params[:project]) 
if @project.save 
    redirect_to new_project_path 
end 

[email protected]_str.split(";") 
end 

每次創建新項目時,都會存儲一個名爲student_str的字符串,每個學生的ID號由「;」分隔。我使用分割功能

這樣字符串分割到一個數組,這裏是我的問題

我有一個包含系統中的所有學生名單另一種模式叫做用戶。 我想爲所有模型條目選擇@users,其ID與數組「student」中的任何數組值相匹配。

任何幫助將非常感激

感謝

編輯:

現在,我測試了與垃圾data.So我student_str會像 1PI12CS019; 1PI10IS034; 1PI11ME110

每個ID都由「;」分隔,

學生模型是使用色器件寶石創建包含以下字段

ID 名稱 電子郵件 電話號碼

和其他色器件東西

+0

請發佈示例student_str和Student模型的數據庫方案。 – davidb

+0

嘗試使用@users = User.where(:id => student) –

回答

1

student_str1PI12CS019;1PI10IS034;1PI11ME110時,使用這些ID獲取用戶的最簡單方法是首先拆分字符串並使用結果進行查詢。

>> student_str = '1PI12CS019;1PI10IS034;1PI11ME110' 
>> ids = student_str.split(';') 
>> User.where(id: ids) # should give you a list of users matching the ids in the string 

知道這一點,其實有兩件事情我想提出。

  1. 如果你堅持公約,所以我建議你使用整數作爲ID的,而不是那些字符串你使用Rails有一個更簡單的生活。
  2. 而不是將ID保存在單個列中,您最好創建另一個表來關聯用戶和學生。最簡單的方法是通過has_and_belongs_to_many。更復雜的方法是使用has_many。快速谷歌搜索這應該給你很好的結果。

祝你好運!

+0

謝謝,這似乎有固定的東西。關於ID的 這是我正在使用的大學ID,我無法做任何事情。 我會查找一下,屬於很多。 非常感謝。 –