Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.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 ROR:嵌套资源:NoMethodError_Ruby On Rails_Form For_Nested Resources - Fatal编程技术网

Ruby on rails ROR:嵌套资源:NoMethodError

Ruby on rails ROR:嵌套资源:NoMethodError,ruby-on-rails,form-for,nested-resources,Ruby On Rails,Form For,Nested Resources,在我的应用程序中,创建团队是为了解决挑战。创建团队后,成员可以加入该团队 创建挑战->团队时,一切都正常,但在添加团队成员时,我收到此错误: 错误 def create @team_member = TeamMember.new(params[:team_member]) @team_member.team_id = @team.id @team_member.user_id = current_user.id respond_to do |format|

在我的应用程序中,创建团队是为了解决挑战。创建团队后,成员可以加入该团队

创建挑战->团队时,一切都正常,但在添加团队成员时,我收到此错误:

错误

def create
    @team_member = TeamMember.new(params[:team_member])
    @team_member.team_id = @team.id
    @team_member.user_id = current_user.id

    respond_to do |format|
      if @team_member.save
        format.html { redirect_to [@team,@team_member], notice: 'Team member was successfully created.' }
        format.json { render json: [@team,@team_member], status: :created, location: [@team,@team_member] }
      else
        format.html { render action: "new" }
        format.json { render json: @team_member.errors, status: :unprocessable_entity }
      end
    end
  end
团队成员中的命名错误#新

显示/home/vincent/solvabl/app/views/team_members/_form.html.erb,其中第1行出现:

undefined method `team_team_members_path' for #<#<Class:0x9bdadcc>:0xa179df0>
请求

参数:

{"challenge_id"=>"1",
 "team_id"=>"1"}
显示会话转储

显示环境转储 回应

标题:

None
路线

resources :challenges do
  resources :teams do
    resources :team_members
  end
end
控制器

def create
    @team_member = TeamMember.new(params[:team_member])
    @team_member.team_id = @team.id
    @team_member.user_id = current_user.id

    respond_to do |format|
      if @team_member.save
        format.html { redirect_to [@team,@team_member], notice: 'Team member was successfully created.' }
        format.json { render json: [@team,@team_member], status: :created, location: [@team,@team_member] }
      else
        format.html { render action: "new" }
        format.json { render json: @team_member.errors, status: :unprocessable_entity }
      end
    end
  end
查看

<%= form_for([@team,@team_member]) do |f| %>
  <% if @team_member.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@team_member.errors.count, "error") %> prohibited this team_member from being saved:</h2>

      <ul>
      <% @team_member.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :team_id %><br />
    <%= f.number_field :team_id %>
  </div>
  <div class="field">
    <%= f.label :user_id %><br />
    <%= f.number_field :user_id %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

禁止保存此团队成员:



非常感谢您的帮助

您拥有的路线将为您提供
挑战\u团队\u团队成员\u路径
。为了获得
team\u team\u members\u path
将以下内容添加到
config/routes.rb

resources :teams do 
  resources :team_members
end
更新:

请注意,此添加应该是对您已经定义的内容的补充。因此,您的
routes.rb
将具有:

resources :challenges do
  resources :teams do
    resources :team_members
  end
end

resources :teams do 
  resources :team_members
end

您拥有的路线将为您提供
挑战\u团队\u团队成员\u路径
。为了获得
team\u team\u members\u path
将以下内容添加到
config/routes.rb

resources :teams do 
  resources :team_members
end
更新:

请注意,此添加应该是对您已经定义的内容的补充。因此,您的
routes.rb
将具有:

resources :challenges do
  resources :teams do
    resources :team_members
  end
end

resources :teams do 
  resources :team_members
end

谢谢你,维诺达卡,这真的很有道理。当我回到电脑前,我要试试这个。我会让你知道这是否有效。再次感谢!谢谢你,维诺达卡,这真的很有道理。当我回到电脑前,我要试试这个。我会让你知道这是否有效。再次感谢!