我正在为一些练习构建一个简单的待办事项应用程序。我有项目,其中有_许多任务和任务属于_项目。
这样我就可以显示 url/projects/1/tasks 我正在嵌套路由:
路线.rb
resources :projects do
resources :tasks
end
在我的项目显示视图中,我有以下形式:
Add a task:
<%= form_for [@project, @task] do |f| %>
<%= f.label :Task_name %>
<%= f.text_field :name, :placeholder => "Task Name" %>
<%= f.submit 'Create Task' %>
<% end %>
在我的任务控制器中,我正在执行以下操作:
def create
@project = Project.find(params[:project_id])
@task = @project.tasks.new(params[:task])
if @task.save
redirect_to projects_path(@project)
else
redirect_to projects_path(@project)
end
end
当我重定向并传入项目实例变量时,它似乎在 task.save 上,它将我重定向到http://todoapp.dev/projects.5(5 是项目的 ID)而不是http://todoapp.dev/项目/5 .
问题可能出在我的控制器中,使用 redirect_to 方法或可能是嵌套路由?
我对 Rails 路由有基本的了解,但可以使用一些建议。