以下を達成するための最良の方法で、実際にいくつかの助けを借りることができます: 私はコントローラーに以下を持っています (そして、これはここにあってはならず、モデルに移動する必要があることを知っています)
これは電子メール メッセージング システムです。そのため、あなたが保持しているポジションに応じて、設定されたグループに電子メールを送信できます。したがって、大隊司令官などの場合は、以下に定義されている 5 つのグループのいずれかにメッセージを送信することを選択できます。あなたが中隊長である場合、あなたのグループは変更されます。ビューにはドロップダウン メニューがあり、メッセージの送信先グループを選択します。サインインしているユーザーの位置に応じて、選択メニューが表示されます。
問題は、「elsif」部分がメッセージに正しく入力されていないようです。右のドロップダウン リストが表示され、電子メールが送信されたが、電子メールが入力されていないかのように動作します。ただし、最初の値 (大隊司令官) は正常に機能します。
if else ステートメントに何か間違った記述がありますか? それはかなり単純であるべきだと思われます。ユーザーの位置は常に正しく反映されるため、そうではありません。
if (@position == "Battalion Commander" or "Command Sergeant Major" or "FRSA" or "Battalion FRG Leader")
@bnok = (@user.battalion.primaries).collect(&:email).select{|s| !s.blank?}.join(", ")
@bspouses = (@user.battalion.primaries(:conditions => ["relationship = 'spouse'"])).collect(&:email).select{|s| !s.blank?}.join(", ")
@bsoldiers= (@user.battalion.soldiers).collect(&:email).select{|s| !s.blank?}.join(", ")
@bsoldierspouse=((@user.battalion.soldiers)+(@user.battalion.primaries(:conditions => ["relationship = 'spouse'"]))).collect(&:email).select{|s| !s.blank?}.join(", ")
@ballcontacts=((@user.battalion.soldiers)+(@user.battalion.primaries)+(@user.battalion.additionals)).collect(&:email).select{|s| !s.blank?}.join(", ")
elsif
@position == ("Company Commander" or "First Sergeant" or "FRG Leader")
@nok = (@user.company.primaries).collect(&:email).select{|s| !s.blank?}.join(", ")
@spouses = (@user.company.primaries(:conditions => ["relationship = 'spouse'"])).collect(&:email).select{|s| !s.blank?}.join(", ")
@soldiers= (@user.company.soldiers).collect(&:email).select{|s| !s.blank?}.join(", ")
@soldierspouse=((@user.company.soldiers)+(@user.company.primaries(:conditions => ["relationship = 'spouse'"]))).collect(&:email).select{|s| !s.blank?}.join(", ")
@allcontacts=((@user.company.soldiers)+(@user.company.primaries)+(@user.company.additionals)).collect(&:email).select{|s| !s.blank?}.join(", ")
end
したがって、これは機能しません。一方のセットの位置または他方のセットのいずれかで機能しますが、両方では機能しません。これは、ビュー内の選択メニューに関連しており、特定のグループの人々に対するクエリを保持する位置に応じて変化します。
だから私はこれを持っています:
<% if @position == "Battalion Commander" %>
<%= f.select(:bcc_email, [["Please Select", ""], ["Battalion NOK", @bnok], ["Battalion Spouses", @bspouses], ["Battalion Soldiers Only", @bsoldiers], ["Battalion Soldiers & Spouses", @bsoldierspouse], ["All Battalion Contacts", @ballcontacts]]) %></h1><br />
私はまだレールを学んでおり、case ステートメントの方が良いかどうかはわかりませんが、それがどこに行き、その case ステートメントがビューにどのように適合するかについて混乱しています。
どんなガイダンスでも素晴らしいでしょう。私はこれを少しずつ取り除いて理解しようとしていますが、助けていただければ幸いです。