我想用訪問PARAMS通過協會使用關聯PARAMS
class PostsController < ApplicationController
load_and_authorize_resource
def index
if params[:event_id] then
@event = Event.find(params[:event_id])
if params[:category_id] then
@category = Category.find(params[:category_id])
@posts = Post.where(:event_id => @event.id,
:product => {:category_id => @category.id })
end
end
end
縮小收集給我的錯誤
No attribute named 'category_id' exists for table 'product'
但列「CATEGORY_ID」並不在表中「存在產品'。搜索此錯誤尚未向我顯示任何有用的信息。我也嘗試使用'委託'來使屬性可訪問,但也沒有奏效。我很難過。
這裏是架構
create_table "posts", :force => true do |t|
t.float "quantity"
t.datetime "deadline"
t.integer "product_id"
t.integer "event_id"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "products", :force => true do |t|
t.string "title"
t.text "desc"
t.text "ingredients"
t.float "deposit"
t.float "cost"
t.string "units"
t.float "quantity"
t.float "deadline_hours"
t.boolean "presell_option"
t.integer "user_id"
t.integer "category_id"
t.integer "club_id"
t.datetime "created_at"
t.datetime "updated_at"
end
編輯:
當我糾正 ':產品' 到 ':產品' 我得到這個相關的錯誤
SQLite3::SQLException: no such column: products.category_id: SELECT "posts".* FROM "posts" WHERE (("products"."category_id" = 2 AND "posts"."event_id" = 10))
這讓我爲難,進一步,該模式說我確實在產品表中有category_id
我試着改變這一點,看看我的編輯,對錯誤的任何想法?還有什麼我需要包括? – thejonster
更新了我的答案看一看。 –
是的,那可行,謝謝。我想我必須知道連接是什麼以及我需要使用它。 – thejonster