0

我有一个包含许多作业的作业页面。对于每个作业,我想要一个链接来为该作业创建报告。

在创建报告页面上,应预先填充分配信息,并应呈现报告表单。

任何提示我如何开始?

4

1 回答 1

0

首先你应该有一个报告模型假设报告模型有一个消息属性,那么我们可以简单地做

在您的报告模型中应该看起来像

belongs_to :assignment

那么你的分配模型应该有

has_many:reports

确保在报告数据库中包含 assignment_id 属性

您的控制器的 assignments 索引操作应如下所示

def index
  @assignments = Assignment.all
end

<% @assignments.each do |assignment| %>
  <%#= basic assignment info %>
  <%= link_to "Report", new_assignment_report_path(assingment) %>
<% end %>

在报告控制器中,我们有一个新动作

def new
  @assignment = Assignment.find(params[:assignment_id])
  @report = Report.new(:assignment_id = @assignment.id)
end

在新的报告视图中,我们可以简单地做

<%#= @assignment.attribute basic assignment info %>

然后对于报告表,我们可以简单地做

<%= form_for @report do |f| %>
    <%= f.text_area :message %>
    <%= f.hidden_field :assignment_id %>
<% end %>

我希望这有帮助

不要忘记在您的路线中执行此操作

resources :assignments do
  resources :reports
end
于 2012-10-21T02:39:55.767 回答