2

我有一个注册表单,我想根据用户的回答在数据库中检测用户是异性恋、双性恋还是同性恋。用户会选择我是男人还是女人。然后用户可以选择他们感兴趣的性别。现在我不知道该怎么做的部分是如果用户为这两个选项都选择了“男人”,这应该在我的数据库中显示为“同性恋”列下的性行为(如果两个选项都选择了女性,则同样适用)。然后,如果用户选择“男人”但这次对“两者”感兴趣,它将在数据库中显示“双性恋”。最后,如果用户选择“男人”并且对选择“女人”感兴趣,则表明用户是“异性恋”。当然,如果性别选择是“女人”,那么性取向选项就会乱七八糟。

我不知道该怎么做。我没有在注册表中使用 gem。

<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 回答