https://github.com/jtrinker/highlands
我正在构建一个允许用户登录并加入群组的应用。当他们点击一个组然后点击“加入”时,我希望将用户的电子邮件地址发布到成员资格表,并保存已加入该组的用户。
我有一个用户,组和成员资格模型。一旦我添加了会员桌,事情变得有点毛茸茸。
型号:
class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :group
attr_accessible :user_email
end
class User < ActiveRecord::Base
belongs_to :group
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :username, :password, :password_confirmation, :remember_me
end
class Group < ActiveRecord::Base
has_many :memberships
has_many :users, :through => :memberships
attr_accessible :description, :location, :name
end
组#显示:
<h1><%= @group.name %></h1>
<h4><%= @group.location %></h4>
<p><%= @group.description %></p>
<%= link_to "Join +", memberships_path(:user_email => user.email), :method => :post %>
我不确定如何让用户成为某个群组的成员。
我的所有代码都在github上发布 - https://github.com/jtrinker/highlands
谢谢!
答案 0 :(得分:1)
我看到你正在发送:向群组发帖请求#通过link_to创建动作,但你可以采取另一种方式:
在成员资格控制器中创建:加入操作
def join
# some code here
end
添加到代码
之后的路线resources :membership do
get :join, via: :get
end
它显示返回路线,如:
membership_join GET /membership/:membership_id/join(.:format) membership#join
比使用membership_id加入行动的视图链接
<%= link_to "Join +", membership_join_path(:membership_id => @group.id) %>