1
我獲得了幫助Setting up a polymorphic association提交表單和創建行動多形態協會
我現在有實現的提交表單,並創建行動的麻煩。用戶只需要關注並取消關注每個模型。
在我的跟蹤控制器
class FollowsController < ApplicationController
before_filter :find_supports
def create
@relation = find_supports
@follow = @relation.find(params[:follow])
current_user.follows.follow!(@follow)
respond_to do |format|
format.html { redirect_to :back }
format.js
end
end
def destroy
@follows = Follow.find(params[:id]).followable
current_user.unfollow!(@follows)
respond_to do |format|
format.html { redirect_to :back }
format.js
end
end
private
def find_supports
params.each do |name, value|
if name =~ /(.+)_id$/
return $1.classify.constantize.find(value)
else
nil
end
end
end
end
在我的跟蹤形式,這是在渲染對我多態模型
編輯
<%= form_for @cause.follows.build(params[:follow]) do |f| %>
<div><%= f.hidden_field :followable_id %></div>
<div><%= f.hidden_field :followable_type %></div>
<div><%= f.hidden_field :follower_id %></div>
<div class="create-button"><%= f.submit "Follow" %></div>
<% end %> <!-- I now get the values for followable_id and followable_type, but it
wont get grab the follower_id and I get an error in the create action -->
,並在我的用戶模型,我有這3種方法
def following?(follow)
follows.find_by_followable_id(follow)
end
def follow!(followable)
follows.create![] ##I have tried many different params here
end
def unfollow!(followable)
follows.destroy(params[:followable_id]).destroy
end
我無法獲得follower_id,followable_id和followable_type以正確保存。有什麼建議麼? 在此先感謝,我花了很多時間與此。
你有沒有想過這個?我在創建多態關聯時遇到了類似的問題。 – lflores
@lflores是的,我做到了。我將添加我的解決方案 –