Ruby on rails 数据未保存在联接表中
我在一个网站上工作,一个用户可以有多个项目,多文件用户可以为一个项目做出贡献。 我有一个项目模型Ruby on rails 数据未保存在联接表中,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-4,has-and-belongs-to-many,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 4,Has And Belongs To Many,我在一个网站上工作,一个用户可以有多个项目,多文件用户可以为一个项目做出贡献。 我有一个项目模型 class Project < ActiveRecord::Base #associations has_and_belongs_to_many :users end 和一个用户模型 class User < ActiveRecord::Base #associations has_and_belongs_to_many :projects end 我创建了一个名为-
class Project < ActiveRecord::Base
#associations
has_and_belongs_to_many :users
end
和一个用户模型
class User < ActiveRecord::Base
#associations
has_and_belongs_to_many :projects
end
我创建了一个名为-:projects\u users的联接表
当我在rails控制台上运行代码时,一切正常。
但是,当我尝试在控制器中执行保存操作时,数据没有保存在联接表中。
控制器的代码
请帮忙
class ProjectsController < ApplicationController
def new
@project = Project.new
end
def create
@user = User.find(session[:user_id])
@project = Project.new(project_params)
if @project.save
@project.users << @user
redirect_to @project
else
flash[:error] = "Project has not been created due to some error"
render 'new'
end
end
private
def project_params
params.require(:project).permit(:name,:description)
end
end
尝试使用嵌套\u属性\u
你的表格应该是这样的
<%= form_for(@question) do |f| %>
<% if @question.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@question.errors.count, "error") %> prohibited this question from being saved:</h2>
<ul>
<% @question.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %><br>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :description %><br>
<%= f.text_field :description %>
</div>
<%= f.fields_for :answer do |builder| %>
<%= builder.label :content %>
<%= builder.text_area :content %>
<% end %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
刚刚改变
@project.users << @user
到
它开始工作了。还不知道原因,但它工作了试试@project=@user.projects.createproject_params或@project=@user.projects.newproject_params@Sontya抛出和未定义的方法项目错误。而append do you have session[:user_id],您将不会得到@user,这就是为什么它会说undefined methodprojects@Sontya-你能提出必要的修改建议吗?
<%= form_for(@question) do |f| %>
<% if @question.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@question.errors.count, "error") %> prohibited this question from being saved:</h2>
<ul>
<% @question.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %><br>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :description %><br>
<%= f.text_field :description %>
</div>
<%= f.fields_for :answer do |builder| %>
<%= builder.label :content %>
<%= builder.text_area :content %>
<% end %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
@project.users << @user
@user.projects << @project