簡體   English   中英

我找不到直接在Rails中將值保存在哈希中的方法

[英]I can't find a method to save the values in a hash directly in rails

我是Rails的新手,並且研究了一整天。 我認為我的問題很容易。

有一個表questions_tags_relation ,它有兩列(無id):

columns:
question_id -> string
tag_id -> string

我有一個哈希

record = {:question_id=>'111111', :tag_id=>'22222'}

而且沒有模型'QuestionsTags' ,我也不想創建一個模型。

現在,我可以獲取ActiveRecord::Base.connection ,但是如何使用簡單的代碼將哈希插入表呢? 我希望這些是save方法:

ActiveRecord::Base.connection.save 'questions_tags', record

有這種方法嗎?


更新

我之所以問這個問題,是因為使用ActiveRecord模型將數據保存到數據庫時遇到了一些問題。 也許直接使用connection會更簡單。 一些表是join表,它們沒有主鍵,這就是為什么我的示例中沒有id的原因。 我希望有一種簡單的方法可以將哈希保存到表中,但我找不到它。 謝謝朋友

在用於多對多關系的聯結表上,您不應具有id字段。 實際上,如果您嘗試這樣做,rails將大聲失敗,因為它會使事情變得混亂。

通常,如果您不希望創建連接模型,只需使用has_and_belongs_to_many即可 ,該方法不需要它。 然后,您可以說@question.tags ,它將通過相應的表進行聯接。 您應該使用適當的表名(或用:join_table覆蓋它)。

創建關聯后,就可以像這樣使用它:

@question.tags << Tag.first
@question.tags.each { |t| t.name }
# ... and so on

編輯:我知道這不會回答如何連接到數據庫的問題,但我希望我回答了如何在不創建聯接模型的情況下訪問多對多關系的問題用於中間表。

如果您不需要ID,那么最好的選擇就是直接尋址數據庫。 否則,只需添加一個id費爾德和創建一個模型,其明智的做法,除非你有一個很重要的理由不這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM