我是Ruby on rails的新手,我正在搞乱表单。
让我们从我正在开展的项目的背景开始。长话短说(dumbed-down version),这是一个问答网站,用户猜测答案,系统检查用户的提交是否正确,显示相应的消息,将他们的积分添加到记分板,以及将尝试存储到数据库表。
我在提问页面上显示了提交表单。
我知道这是一个简单的问题,但我希望有人可以解释为什么,或者它是如何发生的,这样我才能学习。我相信我误解了嵌套的命名空间组如何使用不同的模型并正确调用它们。
我有以下错误:
命名空间:成员
路线
namespace :member do
resources :challenges do
resources :submissions
end
end
模型
提交
class Member::Submission < ActiveRecord::Base
belongs_to :challenges
end
挑战
class Member::Challenge < ActiveRecord::Base
belongs_to :category
belongs_to :group
belongs_to :point
has_many :submissions
提交表格
<%= form_for([@member_challenge, @member_challenge.submissions.build]) do |f| %>
<%= f.label :content %><br>
<%= f.text_area :content %>
<%= f.submit %>
<% end %>
提交控制器
before_action :find_challenge
def create
@member_submission = @challenge.submissions.create(params[:submission].permit(:content))
@member_submission.save
end
....
private
def find_challenge
@challenge = Member::Challenge.find(params[:challenge_id])
end
收到错误
NoMethodError in Member::Challenges#show
Showing /home/ubuntu/workspace/Cyberlympix/app/views/member/submissions/_form.html.erb where line #1 raised:
undefined method `member_challenge_member_submissions_path' for #<#<Class:0x00000004131b28>:0x0000000432a218>
Did you mean? member_challenge_submissions_path
member_challenge_submission_path
我知道它与表格有关,我称之为@member_challenge,但不确定我做错了什么?
任何帮助都非常感激。