Rails, 表单路径
Rails, form path
我正在尝试使用 simple_form
在一页中创建多个课程
路线看起来像这样
resources :schools do
resources :groups do
resources :lessons, only: [:new, :create, :destroy]
end
end
school_group_lessons POST /schools/:school_id/groups/:group_id/lessons(.:format) lessons#create
new_school_group_lesson GET /schools/:school_id/groups/:group_id/lessons/new(.:format) lessons#new
表格目前看起来像这样(尝试了很多变体,但我总是出错)
= simple_form_for school_group_lesson_path [school_id: 1, group_id: 1, Lesson.new]. remote: true, method: :post do |f|
我得到的错误是
Can't assign to true 1, Lesson.new]. remote: true, method: :post do
|f|; ^
/home/panda/workspace/Schooled/app/views/lessons/_form.html.slim:18:
syntax error, unexpected keyword_end, expecting end-of-input
_concat(("".freeze)); end; @output_buffer.safe_concat(( ^
这并没有给我任何解决问题的线索...
谁能告诉我我做错了什么:?谢谢!
我可以为您指出一些错误
您在 [school_id: 1, group_id: 1, Lesson.new]
之后有一个 点 (.),它应该是一个 逗号(,)
这是错误的[school_id: 1, group_id: 1, Lesson.new]
。您应该将 school
和 group
的 实例 作为参数连同 Lesson.new
表单路径乱七八糟。应该是
= simple_form_for school_group_lessons_path(@school_instance,@group_instance,Lesson.new), remote: true, method: :post do |f|
或
= simple_form_for [@school_instance,@group_instance,Lesson.new], remote: true, method: :post do |f|
还要注意 school_group_lesson_path
应该是 school_group_lessons_path
最后确保在 controller#action
中定义所需的 school
和 group
实例
您在这一行中使用了句点而不是逗号:
= simple_form_for school_group_lesson_path [school_id: 1, group_id: 1, Lesson.new]. remote: true, method: :post do |f|
尝试:
= simple_form_for school_group_lesson_path(school_id: 1, group_id: 1, Lesson.new), remote: true, method: :post do |f|
注意:simple_form_for 的正确用法类似于:
simple_form_for @lesson do |f|
f.input ....
end
我正在尝试使用 simple_form
在一页中创建多个课程路线看起来像这样
resources :schools do
resources :groups do
resources :lessons, only: [:new, :create, :destroy]
end
end
school_group_lessons POST /schools/:school_id/groups/:group_id/lessons(.:format) lessons#create
new_school_group_lesson GET /schools/:school_id/groups/:group_id/lessons/new(.:format) lessons#new
表格目前看起来像这样(尝试了很多变体,但我总是出错)
= simple_form_for school_group_lesson_path [school_id: 1, group_id: 1, Lesson.new]. remote: true, method: :post do |f|
我得到的错误是
Can't assign to true 1, Lesson.new]. remote: true, method: :post do |f|; ^ /home/panda/workspace/Schooled/app/views/lessons/_form.html.slim:18: syntax error, unexpected keyword_end, expecting end-of-input _concat(("".freeze)); end; @output_buffer.safe_concat(( ^
这并没有给我任何解决问题的线索... 谁能告诉我我做错了什么:?谢谢!
我可以为您指出一些错误
您在 [school_id: 1, group_id: 1, Lesson.new]
之后有一个 点 (.),它应该是一个 逗号(,)
这是错误的[school_id: 1, group_id: 1, Lesson.new]
。您应该将 school
和 group
的 实例 作为参数连同 Lesson.new
表单路径乱七八糟。应该是
= simple_form_for school_group_lessons_path(@school_instance,@group_instance,Lesson.new), remote: true, method: :post do |f|
或
= simple_form_for [@school_instance,@group_instance,Lesson.new], remote: true, method: :post do |f|
还要注意 school_group_lesson_path
应该是 school_group_lessons_path
最后确保在 controller#action
school
和 group
实例
您在这一行中使用了句点而不是逗号:
= simple_form_for school_group_lesson_path [school_id: 1, group_id: 1, Lesson.new]. remote: true, method: :post do |f|
尝试:
= simple_form_for school_group_lesson_path(school_id: 1, group_id: 1, Lesson.new), remote: true, method: :post do |f|
注意:simple_form_for 的正确用法类似于:
simple_form_for @lesson do |f|
f.input ....
end