私はProduct
のリンクを作成してユーザーが購読できるようにする方法について助けが必要です。製品を購読するためのリンクを作成していますか?
class Subscription < ActiveRecord::Base
attr_accessible :subscribable_id
belongs_to :subscriber, :class_name => "User"
belongs_to :subscribable, :polymorphic => true
end
その後、私のProduct
モデル::
class Product < ActiveRecord::Base
attr_accessible :name, :price
belongs_to :user
has_many :subscriptions, :as => :subscribable
end
私の計画はDELETE
方法製品を購読するにはクリックしたリンクに似て、私の見解を作ることである私が最初に私のSubscription
モデルを持っています。ここに私のルート、コントローラがあり、その後表示:
resources :products do
post :subscribe_product, :on => :collection
end
ProductsController:
def subscribe_product
@product = Product.find(params[:id])
# Not sure what goes here next?
# Something like: user.subscriptions.create(:subscribable => product)
end
ビュー:
ActiveRecord::RecordNotFound in ProductsController#show
Couldn't find Product with id=subscribe_product
:
<table>
<% for product in @products %>
<tbody>
<tr>
<td><%= product.name %></td>
<td><%= product.price %></td>
<td><%= link_to 'Delete', product, :confirm => 'Are you sure?', :method => :delete %></td>
<td><%= link_to 'Subscribe', :controller => "products", :action => "subscribe_product", :id => product.id %></td>
</tr>
</tbody>
<% end %>
</table>
今、これは奇妙なエラーが発生します彼らの2つのもの、
- 購読する方法を作成します。
- リンクを正しく作成してください。
私はこれらの2をどのように行うのでしょうか?デフォルトのlink_toによって