Task
データベースからランダムを生成し、ページにレンダリングしようとしています。
メインページには次のものがあります:<%= link_to 'gen task', :action => :random_task %>
コントローラーには、次の2つのメソッドがあります。
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: 私はレールが初めてです。