0
私は私のtutor.rb
モデルコントローラロジック
def self.fees_search(n)
@profile = Profile.fees_to(n)
if @profile.empty?
return Tutor.none
else
@profile.map do |y|
y.tutor
end
end
end
def self.subject_search(s)
@subject = Subject.find_by_name(s)
unless @subject.nil?
@subject.tutors
end
end
で定義された以下のメソッドを持っており、独立して適用されたときに、私のtutors_controller.rb
に私は
def index
@tutor = Tutor.all
@tutor = @tutor.fees_search(params[:fees_search]) if params[:fees_search].present?
@tutor = @tutor.subject_search(params[:subject_search]) if params[:subject_search].present?
end
検索作業の両方のために、以下ましたが、私が両方をやろうとすると、エラーundefined method
subject_search for#now i suppose its because the first method of
fees_searchが最初に処理されますか?それは私がこのエラーを受けていると思う理由です。コントローラの動作を違う方法でコード化するにはどうすればよいですか?両方のフィルタを受け入れるには?
すべてのアドバイスをいただきありがとうございます。ありがとう!
をのparamsは
present
何であるかのcondtionsを与えて試してみてください、私はそれを試してみるだろうが、私は第三、あるいは第四の検索パラメータを持っていたものか?私が '@tutor = @ tutor.location_search'などと言った場合、どうすればそのロジックをさらに拡張できますか? 2つではなく3つのフィルタを同時に適用することができるので、組み合わせの増加によりコードが膨らむようです – angkikiは、あなたがパラメータを送信するのと同じ方法ですか?複数のフィルタを適用する必要がある場合は、パラメータに基づいてメソッドを呼び出しますか? – Sravan
本当に申し訳ありませんが、私はあなたが何を意味しているのかよく理解していません...あなたは精巧にできると思いますか? – angkiki