ユーザーがメンターとの予定/会話時間をスケジュールする必要があるアプリケーションを構築しています。私はこれを構築するのに苦労しています。私は has_many :through => Association について調べてきましたが、これについて間違った方法で行っていることはわかっています。
私の User.rb で
Class User < ActiveRecord::Base
has_many :mentor_requests, foreign_key: "user_id"
has_many :mentors, through: :mentor_requests
def requested?(mentor)
mentor_requests.find_by_mentor_id(mentor.id)
end
def request!(mentor_request)
mentor_requests.create!(mentor_request)
end
def unrequest!(mentor)
mentor_requests.find_by_mentor_id(mentor.id).destroy
end
end
私のMentor.rbで
class Mentor < User
has_many :mentor_requests, foreign_key: "mentor_id"
has_many :users, through: :mentor_requests
end
Mentor_request.rb で
class MentorRequest < ActiveRecord::Base
attr_accessible :reason, :mentor_id
belongs_to :user, class_name: "User"
belongs_to :mentor, class_name: "Mentor"
validates :user_id, :mentor_id, presence: true
validates :reason, presence:true, length: { maximum: 140 }
default_scope order: 'mentor_requests.created_at DESC'
end
私のリクエストではコントローラーは
def create
@mentor_request = current_user.mentor_requests.build(params[:mentor_request])
#current_user.request!(@mentor)
if @mentor_request.save
flash[:success] = "Your request has been sent"
redirect_to user_path(current_user)
#Send confirmations to both user and mentor
#Send the notification to an internal message inbox
else
render "new"
end
end
mentor_requests/new.html.erb のビューに移動してリクエストを送信しようとすると、mentor_id が存在する必要があり、コンテンツが存在する必要があると表示されます。メンターの表示ページからモーダル ビューを使用してリクエストを作成しようとしましたが、コンテンツが保存されず、プレゼンスが true である必要があることを検証し、mentor_requests/new.html.erb にリダイレクトすると、メンター ID が存在しなくなりました.
十分な情報を提示したかどうかわかりませんが、ここで真剣に助けが必要です. 私が正しい道を進んでいる場合、それを機能させるために何をする必要がありますか、そしてこれがすべて間違っている場合、私が望むものを得るために私は何をしますか.
どうもありがとう
ジュード