【发布时间】:2020-09-24 13:00:52
【问题描述】:
user has_many project 和 project 有很多 user。
project_user 表具有属性project_id 和user_id。
为用户使用设计 gem。
当用户创建新项目时,项目将由用户创建。但用户在index.html.erb 视图中看不到项目。
这是我的代码: 项目.rb
has_many :project_users
has_many :users, through: :project_users
project_user.rb
class ProjectUser < ApplicationRecord
belongs_to :user
belongs_to :project
end
用户.rb
has_many :project_users
has_many :projects, through: :project_users
projects_controller.rb
def index
@projects = current_user.projects.all.order("created_at DESC")
end
def create
@project = current_user.projects.build(project_params)
respond_to do |format|
if @project.save
format.html { redirect_to projects_url, notice: 'Project was successfully created.' }
format.json { render :show, status: :created, location: @project }
else
format.html { render :new }
format.json { render json: @project.errors, status: :unprocessable_entity }
end
end
end
params.require(:project).permit(:project_name, :from_date, :to_date)
index.html.erb#project
<% @projects.each do |project| %>
<% end %>
form.html.erb(项目)
<%= form_with(model: project, :html => {:id => 'project-form-validation'}, local: true) do |form| %>
<div class="row select-date-wrapper">
<div class="field columns large-6">
<%= form.label :project_name,:class=>"required" %>
<%= form.text_field :project_name %>
</div>
<div class="field columns large-2">
<%= form.label :from_date,:class=>"required" %>
<%= form.text_field :from_date, class: 'datepicker', readonly: 'true' %>
</div>
<div class="field columns large-1"></div>
<div class="field columns large-2">
<%= form.label :to_date,:class=>"required" %>
<%= form.text_field :to_date, class: 'datepicker', readonly: 'true' %>
</div>
<div class="field columns large-1"></div>
</div>
<div class="row">
<div class="actions columns button-right">
<br>
<%= form.submit :class => "button primary" %>
</div>
</div>
<% end %>
【问题讨论】:
-
问题是什么?
-
@jvillian,我无法在他们的视图中看到当前用户创建的
projects。 -
@jvillian,创建项目的当前用户无法在我当前的
has_many到has_many关联中看到他们的项目。正如我所见,我创建了项目,但project_user表中的映射没有得到更新。
标签: ruby-on-rails ruby-on-rails-5