我是 Ruby 的新手。我必须渲染数据库结构,使用教程我找到了合适的代码:
文件 index.html.erb:
<h1>Listing tasks</h1>
<table>
<tr>
<th>Title</th>
<th>Content</th>
<th>Date From</th>
<th>Date To</th>
<th></th>
<th></th>
<th></th>
</tr>
<% @tasks.each do |task| %>
<tr>
<td><%= task.title %></td>
<td><%= task.content %></td>
<td><%= task.datefrom %></td>
<td><%= task.dateto %></td>
<td><%= link_to 'Show', task %></td>
<td><%= link_to 'Edit', edit_task_path(task) %></td>
<td><%= link_to 'Destroy', task, :method => :delete, :data => { :confirm => 'Are you sure?' } %></td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'New Task', new_task_path %>
现在我想按“日期来源”值对任务进行分组,这可能意味着在 index.html.erb 中我应该只打印日期,然后单击日期我应该调用另一个 html 文件,该文件将按所选日期呈现任务。
这可以像
文件 index.html.erb:
<h1>Listing dates</h1>
<table>
<tr>
<th>Date From</th>
<% @tasks.each do |task| %>
<tr>
<td><%= !!! IF DATE NOT PRINTED THEN PTINT IT task.datefrom %></td>
<td><%= link_to 'Edit', edit_date_path(task, date) %></td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'New Task', new_task_path %>
在哪里 edit_date_path(task, date) 应该让我参考 index_date.html.erb,我可以在其中获取选定的日期并根据选定的日期打印任务。
也许我可以得到建议,如果有人可以帮助我,这会容易得多,因为任务应该不是很困难,但否则我会浪费很多时间在谷歌上搜索。
谢谢,乌玛斯。
编辑问题。
这有点帮助。我现在所做的,我将 index.html.erb 更改为
<h1>Listing dates</h1>
<table>
<tr>
<th>Date To</th>
<th></th>
</tr>
<% dates = Array.new %>
<% @tasks.each do |task| %>
<% if ( !dates.include?(task.dateto.strftime("%m.%d.%Y")) ) then
dates.push task.dateto.strftime("%m.%d.%Y")
%>
<tr>
<td><%= task.datefrom.strftime("%m.%d.%Y") %></td>
<td><%= link_to 'Show Date', {:action => "index", :date => task.dateto} %></td> <-- This does not work
</tr>
<%
end
%>
<% end %>
</table>
<br />
<%= link_to 'New Task', new_task_path %>
应将“显示日期”链接链接到 show_date.html.erb,其中是在输入日期通过时显示记录的正确代码。
我在控制器中也添加了方法
def show_date
@tasks = Task.find(params[:dateto])
@dateto = :dateto
respond_to do |format|
format.html # showdate.html.erb
format.json { render :json => @tasks }
end
end
可以在不工作的链接中使用,将数据传递给“显示日期”(show_date.html.erb),但我总是出错。问题在于正确取消show_date.html.erb,我将能够自己编写代码:)
乌尔马斯