2

私は登録フォームを持っており、ユーザーの回答に基づいて、ユーザーが異性愛者、バイセクシュアル、または同性愛者であるかどうかをデータベースで検出したいと考えています。ユーザーは、私は男性か女性かを選択します。次に、ユーザーは興味のある性別を選択します。ユーザーが両方のオプションで「男性」を選択した場合、データベースのセクシュアリティ列の下に「同性愛者」として表示されるはずです(両方のオプションで女性が選択された場合も同様です)。次に、ユーザーが「男性」を選択したが、今回は「両方」に関心がある場合、データベースでは「バイセクシュアル」と表示されます。そして最後に、ユーザーが「男性」を選択し、興味のある人が「女性」を選択した場合、ユーザーが「異性愛者」であることが示されます。もちろん、性別の選択が「女性」の場合、セクシュアリティのオプションはフリップフロップになります.

その方法がわかりません。登録フォームにジェムを使用していません。

<div class="field">I'm a <%= f.select :gender, ['man', 'woman']%> interested in <%= f.select :gender, ['woman', 'men', 'both']%> </div>
4

1 に答える 1

2

あなたがやりたいことの妥当性についてコメントしているわけではありませんが、それを行う方法についての提案があります。

このタイプの機能は通常、コントローラーに抽象化されます。

Rails にはフォームに関する優れたガイドがあります: http://guides.rubyonrails.org/form_helpers.html#a-generic-search-form

設定を保存するアクションにフォームを送信する必要があります。コントローラー/アクションでは、フィールドの値 (性別、興味のあるものなど) を比較し、正しい値を保存できます。コントローラーにコードを記述して、興味のある値と性別の値を比較し、セクシュアリティを生成して保存することができます。

if params[:interested_in] == "both"
    sexuality = "bisexual"
else
    sexuality = (params[:gender == params[:interested_in]) ? "homosexual" : "heterosexual"
end
于 2013-10-02T18:05:40.280 に答える