我有一个分类模型,它以如下方式连接到学生模型
分类.rb
belongs_to :student
在我的学生模型中
has_many :classifieds
分类表包含a column for student_id
当我前往 Rails 控制台时
我可以通过做为那个特定的学生记录创建一个新的分类
Student.find(19).classifieds.create(:ad_title => "blah", :ad_content => "blah", :location => "blah")
记录自动生成一个 student_id,因为它是从学生的角度创建的。
现在的问题是我有一个分类控制器,在视图中有一个新的创建方法和一个新表单
我正在从分类广告的角度创建一个新广告,这里是表格
<div>
新广告: <br><br>
<%= simple_form_for @advertisement do |f| %>
<%= f.input :ad_title, label: "Title" %><br>
<%= f.input :ad_content, label: "Content"%><br>
<%= f.input :location, label: "Location"%><br>
<%= f.input :student_id, label: "Your Student ID"%><br>
<%= f.button :submit, "Add an Advertisement" %>
<% end %>
</div>
问题是 student_id 必须存在才能使该特定记录显示在索引中,而我的用户不知道他们的 id。
如何使用表格从学生的角度创建分类
我考虑去我的学生控制器并添加这样的方法
def create_classified_ad
@student = Student.find(params[:id])
@classified = @student.classified.create(params[:classified])
end
我正在使用设计,所以有用户会话?我完全不知道会话是如何工作的 我希望在登录后找到该特定学生,并让该学生使用表单中的输入创建分类广告,以便正确创建记录?
问题更像是如何使用表单将数据正确插入连接的表?(而不仅仅是将数据插入到一个简单的无关系表中)