在我的应用程序中,我想让用户搜索商店,然后选择他们想要使用的商店。它应该转到一个表单,该表单允许用户向该商店添加新价格,就像对文章的评论一样,但我得到了错误:
ActiveRecord::RecordNotFound in PricesController#new
Couldn't find Store without an ID
这些是我的联想:
class User
has_many :prices
class Store
has_many :prices
class Price
belongs_to :user
belongs_to :store
因此,当用户选择一个商店时,它应该去price/new
并知道正在使用的商店的 ID。也许是这样的:
<%= form_for @price, :url => create_price_store_path(@store) do |f| %>
...
<% end %>
然后我正在使用的操作:
class PricesController
def select_store
# Find the store using sunspot search
@search = Store.search do |s|
s.fulltext params[:search] unless params[:search].blank?
s.paginate(:per_page => 5, :page => params[:page])
end
@stores = @search.results
end
def new
@store = Store.find(params[:id])
@price = Price.new
end
end
然后我的路线到目前为止:
resources :stores do
member do
post :create_price
end
end
resources :prices do
collection do
get :select_store
end
end
为什么我会收到此错误?应该纠正什么?