我有一个注册表单,我想根据用户的答案在数据库中检测用户是异性恋、双性恋还是同性恋。用户会选择我是男人还是女人。然后用户可以选择他们感兴趣的性别。现在我不知道该怎么做的部分是,如果用户为两个选项都选择“男人”,这应该在我的数据库中的性行为列下显示为“同性恋”(如果这两个选项都选择了女性,则同样适用)。然后,如果用户选择“男人”,但这次对“两者”感兴趣,它将在数据库中显示“双性恋”。最后,如果用户选择“男人”并且有兴趣选择“女人”,则会显示该用户是“异性恋”。当然,如果性别选择是“女性”,性取向选项也会发生变化。
我不知道该怎么做。我的注册表单没有使用 gem。
<div class="field">I'm a <%= f.select :gender, ['man', 'woman']%> interested in <%= f.select :gender, ['woman', 'men', 'both']%> </div>
最佳答案
我不会评论您想要做的事情的有效性,但这里有一个关于如何做的建议。
这种类型的功能通常会被抽象到 Controller 。
Rails 有一个很好的表单指南:http://guides.rubyonrails.org/form_helpers.html#a-generic-search-form
您将希望将表单提交到保存首选项的操作。在 Controller /操作中,您可以比较字段的值(性别、感兴趣等)并保存正确的值。您可以在 Controller 中编写代码来比较兴趣值和性别值并产生性行为,然后将其保存。
if params[:interested_in] == "both"
sexuality = "bisexual"
else
sexuality = (params[:gender == params[:interested_in]) ? "homosexual" : "heterosexual"
end
关于ruby-on-rails - 根据性别和兴趣检测用户的性倾向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19143615/