0
這是我的問題。我可以使用單個表中的數據填充列表。但我需要讀取一張表,並根據這些值從另一個表中獲取數據。如何使用列表中的數據填充下拉表格?
有4個表:
- 用戶(名和用戶ID)
- 朋友(usrid和friendid),friendid是朋友
- 賬戶(ACC_NO和用戶ID)
- 的用戶ID交易(from,to和userid)from和to是account_nos和userid是「from」用戶的ID
賬戶調用新交易方法。 「from」是這裏給出的新方法的一個參數。我可以使用這個帳號找到這樣的用戶ID:
@account=Account.find_by(:acc_no => params[:from])
@transaction.userid = @account.user_id
這在我在視圖中打印時有效。 現在,我需要一個「to」的下拉列表,該列表應該填寫此用戶擁有的朋友的所有帳號。對於這一點,我第一次發現該用戶的朋友是這樣的:
@list1=Friend.where(:user_id => @transaction.userid)
爲了驗證這一點,我只是使用這種方式在我看來,這個名單:
<%= f.select :to, @list1.friendid %>
這也工作過。現在,使用list1,我需要生成另一個列表,其中包含列表1中所有id的acc_no/accounts。
這是我沒有輸出的地方。我試過這個:
@list2 = @list1.map{|i| Account.where(:user_id => i.friend_id)}
這不適合我。基本上我需要執行這個查詢:
select * from accounts where user_id in (select friend_id from friends where user_id = (select user_id from account where acc_no = params[:from]))
我得到了2個嵌套查詢,但我無法獲得工作外查詢相當於
對不起,這不起作用。當我嘗試在表單中使用@ list2.acc_no時,即使acc_no是一列,它也會爲#表示「未定義的方法acc_no」。完全相同的代碼爲@ list1工作。如果我做@ list2 = Account.where(user_id:list1_ids).pluck(:acc_no),它只顯示一個空的下拉框 –
Akhshay