Ruby on rails Rails ActiveRecord关系和在另一个模型视图中为一个模型添加记录存在问题

Ruby on rails Rails ActiveRecord关系和在另一个模型视图中为一个模型添加记录存在问题,ruby-on-rails,ruby,forms,activerecord,Ruby On Rails,Ruby,Forms,Activerecord,我把所有的代码都放在这个要点中,因为我无法使用格式 我想做的是在教授页面上有一个prof_评论模型的表单 每当我尝试提交prof_comments模型的当前表单时,它都会尝试发布到当前professors show页面(/professors/1) 我一直在尝试遵循下面的StackOverflow帖子,但是还没有运气 Routes.rb Rails.application.routes.draw do root :to => "welcome#index" devise_

我把所有的代码都放在这个要点中,因为我无法使用格式

我想做的是在教授页面上有一个prof_评论模型的表单

每当我尝试提交prof_comments模型的当前表单时,它都会尝试发布到当前professors show页面(/professors/1)

我一直在尝试遵循下面的StackOverflow帖子,但是还没有运气

Routes.rb

Rails.application.routes.draw do


  root :to => "welcome#index"
  devise_for :users
  resources :users

  resources :professors
  resources :prof_comments
  resources :classes
  resources :class_comments

end
你必须使用

form_for @prof_comment

使用@not:

我不确定您尝试的方法,但这正是您尝试的方法:让教授的评论显示在它的
显示
页面下

您可以在
professors

您的路线将如下所示:

resources :professors do 
   resources :prof_comments, shallow: true
end
prof_comments controller

 def create 
    @professor = Professor.find(params[:id]) #this pulls specific professor by :id
    @prof_comment = @professor.prof_comments.create(prof_comment_params)
    redirect_to professor_path(@professor) # this will rout you to professor's show page once the comment is created. 
    end
 end
app/views/professors/show.html

 h2>Add a comment:</h2>
  <%= form_for([@professor, @professor.prof_comments.build]) do |f| %>

   <%= f.label :commenter %><br> #commenter with the actual attribute_name
   <%= f.text_field :commenter %> #commenter with the actual attribute_name

   <%= f.label :body %><br> #body should be replaced with your actual attribute_name
   <%= f.text_area :body %> #body should be replaced with your actual attribute_name

   <%= f.submit %>

<% end %>
h2>添加注释:

#具有实际属性_名称的注释器 #具有实际属性\u名称的注释器
#body应替换为您的实际属性_name #body应替换为您的实际属性名称

这些评论将出现在
professor show
视图下。注释嵌套在它下面。像往常一样对待教授的控制者。您将使用
prof_comments
controller创建注释

那么您希望教授的评论出现在教授的
显示页面下
?像帖子和嵌套评论?请多解释。另外,发布你的
routes.rb
是的,我想要一个表格,在展示页面下为这位教授添加一条新的教授评论。我刚刚添加了路线。rb。我想我明白了。@prof_注释意味着我正在引用我在控制器中的show route下定义的prof_注释实例?这里对差异进行了很好的解释。看来我的下一个问题是将教授id发送给prof_评论控制器。这会很有趣。你可以使用
hidden_field_标签'professor_id',1
然后在
params[:professor_id]
中获得professor_id,我必须尝试这两种方法。我想我现在会接受你的,因为它看起来更充实了。它看起来也更专注于将所有这些联系在一起。谢谢顺便说一句,您可以将注释表单移动到局部并进行渲染以避免混乱。顺便说一下,这种方法是从。它会带你走过它