0
不要被長度嚇倒。這可能實際上很簡單。我找不到答案,儘管我試圖尋找無處不在。我希望這對你來說是一個足夠好的挑戰。Ransack:對孩子以及各自的孫子記錄的條件
這裏所說:
Panel.rb
has_many :status_dates
has_many :statuses, through: :status_dates
StatusDate.rb
belongs_to :status
belongs_to :panel
def self.ransackable_attributes(auth_object = nil)
%w(current) + _ransackers.keys
end
Status.rb
has_many :status_dates
這裏是架構。
create_table "panels", force: :cascade do |t|
t.string "no"
t.integer "project_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "status_dates", force: :cascade do |t|
t.integer "status_id"
t.integer "panel_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.date "date"
t.boolean "current"
end
add_index "status_dates", ["panel_id"], name: "index_status_dates_on_panel_id"
add_index "status_dates", ["status_id"], name: "index_status_dates_on_status_id"
create_table "statuses", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
什麼我想要做的?
我想找出基於條件必須都同時存在存在的父紀錄:(一)子記錄及(ii)反過來,孩子的,孩子記錄太(即盛大兒童記錄)。
這是什麼意思?
假設我們有:
我想找到所有的面板,其中有一個特殊的StatusDate記錄,使得StatusDate.current = Y,及其各自的孩子,Status.name = X 。
(「當前」實際上是對StatusDate記錄一個布爾值)。
什麼是此時發生的事情?
這裏是我的_condition_fields.html.erb部分:
問題是什麼?
現在,ransack會在不同的記錄中應用這些條件。但我希望它們直接適用於:(I)兒童記錄和(ii)該特定兒童的兒童記錄。
任何想法我可以做到這一點?
非常感謝。
你會知道我如何從PARAMS訪問這些變量? – BKSpurgeon
你的意思是要求參數?你需要在參數中傳遞'StatusDate_current'和'StatusDate_Status_name'的值,否? –
當實際值嵌套時,這很棘手,還沒有解決。我仍在研究它。我會回來找到答案後發佈。感謝幫助。 – BKSpurgeon