我有三个表- result、feedback_qs和feedback_qs_results (join表)。给定一个已有的结果和feedback_qs,我想用result_id、feedback_q_id和随后的答案(text_area)填充连接表。
我相信这些关系是正确的.
# result.rb
has_many :feedback_q_results
has_many :feedback_qs, :through => :feedback_q_results
# feedback_q.rb
has_many :feedback_q_results
has_many :results, :through => :feedback_q_results
# feedback_q_result.rb
belongs_to :result
belongs_to :feedback_q
我可以通过下面的result_id /routes.rb访问结果(result/result.id/feedback) ...
resources :results do
member do
get 'feedback'
post 'feedback_create'
end
end
填充连接表时,此表单看起来会是什么样子?类似这样的东西(我意识到这是不正确的)...?如何通过post_controller获取数据以填充连接表?或者它应该通过另一个控制器?
<%= form_for :result, url: feedback_create_result_path(result), method: :post do |form| %>
<% for q in FeedbackQ.all %>
<div class="col field">
<p>
<%= form.label q.question_text %>
</p>
<%= text_area_tag id: q.id %>
</div>
<% end %>
<div class="actions">
<%= form.submit "Submit", class: "btn btn-primary" %>
</div>
<% end %>
我的feedback_create方法应该是什么样子的?虽然我已经看到了一些关于rails的多对多关系和填充连接表的问题,但这些用例似乎都不适合我的需要。提前谢谢。
更新-我的用例是这样的:用户参加一次考试(称为结果),然后他们通过回答反馈问题来审查监考者。我想在连接表中记录反馈
https://stackoverflow.com/questions/50607452
复制相似问题