1
我有兩個模型,用戶和俱樂部。用戶可以創建一個俱樂部,然後添加成員到俱樂部。爲了實現這樣的,我有叫會員連接表,因爲這樣的:保存加入無外鍵項目
class Membership < ActiveRecord::Base
attr_accessible :member_id, :club_id, :name, :email
belongs_to :club
belongs_to :member, class_name: "User"
validates :club_id, presence: true
end
要創建一個成員,我有一個要求一個俱樂部成員的姓名和電子郵件形式,並且還通過了:club_id通過一個隱藏的領域。
<%= form_for(@club.memberships.create(:club_id => @club.id)) do |f| %>
<%= f.hidden_field :club_id %>
<div class="field">
<%= f.text_field :name, placeholder: "Name" %>
</div>
<div class="field">
<%= f.text_field :email, placeholder: "Email" %>
</div>
<div class="action">
<%= f.submit "Add", class: "btn" %>
</div>
<% end %>
的:電子郵件被髮送到控制器,以查找該用戶的ID並創建一個籍着:club_id和:member_id,以及用戶名鏈接到他們的個人資料放在俱樂部的網頁上。如果電子郵件地址已經與用戶關聯,則一切正常。
控制器:
def create
@club = Club.find(params[:membership][:club_id])
unless User.find_by_email(params[:membership][:email]).id.nil?
params[:membership][:member_id] = User.find_by_email(params[:membership][:email]).id
@club.memberships.create(params[:membership])
flash[:success] = "Club member successfully added"
redirect_to :back
else
@club.memberships.create(params[:membership]) ##<-- This is where I need help
redirect_to :back
end
end
如果沒有與電子郵件相關的用戶,然而,查找返回零,符合市場預期。我想知道如何才能讓這個成員資格保存只有名稱和否:member_id。我希望它仍然能夠在俱樂部頁面上顯示該俱樂部會員的姓名,但顯然沒有鏈接到他們的個人資料。然後,可以使用電子郵件向他們發送一條消息,指示某人表示他是我網站上的某個俱樂部的成員,但主要是我只想讓他們的姓名仍顯示在該俱樂部的頁面上。
謝謝。