Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails [@parent,@child]的form_导致未定义的方法'parent_child_path';新儿童_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails [@parent,@child]的form_导致未定义的方法'parent_child_path';新儿童

Ruby on rails [@parent,@child]的form_导致未定义的方法'parent_child_path';新儿童,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,因此,一个用户有许多学院(他们曾就读),而一所学院属于一个用户。我称这些学院为college_profile,因为它们是用户档案的学院属性 我在创建一所新学院时遇到了这个问题。目前,我的学院管理员非常简单: def new @user = User.find(params[:id]) @college = current_user.college_profile.build if signed_in? end 视图同样简单:(views/college_profiles/new.htm

因此,一个用户有许多学院(他们曾就读),而一所学院属于一个用户。我称这些学院为college_profile,因为它们是用户档案的学院属性

我在创建一所新学院时遇到了这个问题。目前,我的学院管理员非常简单:

def new
  @user = User.find(params[:id])
  @college = current_user.college_profile.build if signed_in?
end
视图同样简单:(views/college_profiles/new.html.erb)


如果需要更多信息,请告诉我。谢谢

Rails正在尝试创建一个路径,用于将数据从表单发布到控制器。它正在寻找的操作是创建,但在路由中只定义了新的。如果控制器名为CollegeProfiles,则需要将嵌套路由更改为:

resources :college_profiles, :only => [:new, :create]

关于的
form_,其URL基于您传入的模型。就你而言,它是:

<%= form_for [@user, @college] do |f| %>
您只需在
路由中创建
自定义路由
。rb


来源:

谢谢您的快速回复,但不是这样。我在中添加了这一点,但没有任何改变。此外,据我所知,new用于初始化新对象,并在提交表单并保存表单后创建。不管怎样,我试了一下,但没有运气。你重启服务器了吗?如果你运行rake路线,你会得到什么?谢谢!这似乎让我克服了错误,但是。。。老实说,我不确定我应该给它什么网址。我生成了一个到
College_Profile#create
的命名路径,但它似乎没有携带任何表单数据。知道我做错了什么吗?
User
CollegeProfile
的关系是什么吗?是一对多吗?根据您的编辑,我认为您的问题与您的模型和路线有关,而不是表单本身。用户有许多学院,学院属于用户。添加自定义url停止了错误,但可能导致了新的问题-可能是由于我的模型。我想我可以将表单交给College_Profile创建方法,该方法会尝试保存数据。在您有:College_Profile的路由中,不应该是:College_profiles?@ismaelga哇,这可能已经解决了问题。我总是搞不清楚什么时候应该和什么时候不应该多元化…@ismaelga将此作为答案,这样OP可以接受:)检查比灵顿的答案。我解决了这个问题,因为答案已经由他给出了,我猜:)他只是没有意识到。页面现在加载了,但是提交表单会出现类似的错误:
未定义方法“college\u profiles\u path”
,除非我指定如下所述的帖子url,否则我会丢失表单数据/困惑的
resources :users, :only => [:index, :new, :create, :destroy, :update, :edit] do
  resources :college_profiles, :only => [:new, :create]
end
resources :college_profiles, :only => [:new, :create]
<%= form_for [@user, @college] do |f| %>
<%= form_for([@user, @college], :url => your_custom_route_path) do |f| %>