我正在尝试Task
从数据库中生成一个随机数并将其呈现在页面上。
在主页上,我有:<%= link_to 'gen task', :action => :random_task %>
在控制器中我有这两种方法:
def show_random_task
@task = Task.find(params[:task])
end
def random_task
begin
@task.id = nil
@task = Task.find(rand(Task.first.id..Task.last.id)) rescue "Item couldn't been randomized!"
end
respond_to do |format|
format.html {redirect_to show_random_task}
end
end
show_rand_task.html.erb
<h1>Generated task</h1>
<% random_task %>
<%= form_for (:task, :url => {:action =>'show_random_task'}) do |f|%>
<p><%= render(:partial => "show_rand_task_form", :locals => {:f => f}) %></p>
<%end%>
</div>
<%= link_to 'Show', @task %> |
<%= link_to 'Back', tasks_path %>
自定义表单是_show_rand_task_form。我的问题是:我在哪里无法通过随机 id 来显示它。为什么我在show
方法上出现错误,因为我没有调用它。
ActiveRecord::RecordNotFound in TasksController#sho
Couldn't find Task with id=random_task
Rails.root: xxxxxx
app/controllers/tasks_controller.rb:16:in `show'
PS:我是新来的Rails。