2016-07-26 20 views
1

我怎樣才能從一種形式的數組獲取數據:如何在rails上從ruby3數組中提取數據?

<%= User.select(User.all.select { |u| u.id == 1 }) %> 

此外,有沒有什麼更好的方法來提取比所選的所有領域:從使用此代碼sqlite3的數據庫生成

[#<User id: 1, name: "John", surname: "Smith", dob: "2016-07-26", location: "Liverpool", created_at: "2016-07-26 08:50:01", updated_at: "2016-07-26 08:50:01">] 

?無論我嘗試返回一些像參考文獻那樣的長隨機數。

最後,我怎麼能做出:

u.id == 1 

成爲提供給用戶實時的,像下面的任何ID:

u.id == x (where x is any number) 

乾杯!

+0

從數據庫中選擇一個特定的領域設置,你可以使用'pluck' – Kkulikovskis

+0

我試過<%= User.find(1).name%>並且它可以工作,但我想要一個函數來自動生成這個函數,只需要傳入剛剛註冊並返回它的用戶的ID名稱到屏幕 –

+0

,那麼如果你想在註冊後立即顯示名字,那麼你可以使用'User.last.name'(儘管如果兩個人同時註冊,這是不安全的。另一種方法是將註冊用戶作爲實例變量傳遞。當然你有一個控制器方法,你有'@ user.save'或類似的東西。所以然後只顯示'@ user.name'在您的視圖 – Kkulikovskis

回答

1

我不知道如果我失去了一些東西,但我覺得你想要的或者是find

@user = User.find(x) # x = given id 

where(返回一組用戶,而不僅僅是一個)

@user = User.where(id: x) 

,然後在視圖中,可以使用這樣的用戶:

<%= @user.name %> 
+0

我在我的users_controller中有以下代碼: def show @user = User.find(params [:id]) end 因爲我得到的警告在查看文件中find或find_by不應該在視圖中使用。但是當我寫User.show時,我得到一個錯誤「沒有方法錯誤」,我不知道爲什麼。 –

+0

什麼?我編輯了這個問題。看看如何使用它。如果將其加載到控制器中,則不需要在視圖中再次加載它。 – siegy22

+0

實時,當用戶只是註冊到我的應用程序,我怎麼可以退還他使用id給出的實際名稱,如User.find(1).name,但id不會,它會產生的東西那時候。我接受你的答案作爲'勾號'的答案,但請在我剛剛提出的問題上幫助我。 –