我有兴趣制作一个类似于 SO 的功能,其中提出问题的用户可以从响应列表中选择一个答案,但被困在如何从控制器的角度处理点击事件。
目前,我有模型Question
,其中has_many
answers
. 另外,我做了一个Selection
模型,用来象征答案的选择,每个Question
人只能has_one
选择答案。
我将每个问题的答案与问题show
操作中的问题一起呈现。在我的_answer
部分中,我想放置以下逻辑:“如果提出问题的用户已登录,如果相关selection
人员answer_id
已经存储了该答案,他可以看到“取消选择”答案的链接(换句话说,标记这个答案是以前选择的),否则他可以“选择”将答案存储在 中的答案answer_id
。selection
(我应该提到我从Rails 教程这里改编了下面的大部分代码,我(不幸的是)没有扎实的理解如何使用POST
匹配或分配属性给实例变量)
<% if current_user?(answer.question.user) %>
<% if current_user.selections.where(:answer_id => answer.id) == answer.id %>
<%= link_to "unselect", selections_path(:selection => {:answer_id => nil}), :method => :post %>
<% else %>
<%= link_to "select", selections_path(:selection => {:answer_id => answer.id}), :method => :post %>
<% end %>
<% end %>
我的路障在控制器中,如果用户通过“选择”链接选择新答案,我会被困在如何使用the create
方法将@selection
变量分配给新的变量。answer_id
任何帮助或任何关于如何编写点击事件的指南将不胜感激。谢谢!