【问题标题】:form in a many to many relationship形成多对多关系
【发布时间】:2014-11-27 17:34:59
【问题描述】:

我从 Rails 开始。

我试图在两个模型、项目和用户之间实现 has_many_belongs_to_many 关系,我也使用了一个简单的连接表。但我不能做那个工作。我对此感到抓狂。如果有人可以提供帮助,我将不胜感激。 我尝试了这个解决方案,但它给了我一个错误

Rails : assign multiple params via form_for check_box for HABTM relationship 控制器:

 def create
 @users = User.find params[:project].delete[:users]
 @project = Project.new(params[:project])
 @project.users = @users

.....

def project_params
  params.require(:project).permit(:client_id, :pstate_id, :name, 
  :description,  :start_date, :deadline, :is_closed, :workload, :users_ids => [])
  end

我的看法是:

 <div class="field">
 <%= f.label :user_ids, "Users" %><br />
 <%= f.collection_select :user_ids, User.order(:name), :id, :name, {}, 
 {multiple: true}    %>
 </div>

现在我犯了这个错误:

ArgumentError in ProjectsController#create
wrong number of arguments (0 for 1)
Extracted source (around line #37):

35
36
37
38
39
40




authorize! :create, @project
#@project = Project.new(project_params)
@users = User.find params[:project].delete[:users]
@project = Project.new(params[:project])
@project.users = @users
#@users = @user.projects

Rails.root: C:/Ruby200/onlineproyect
Application Trace | Framework Trace | Full Trace

app/controllers/projects_controller.rb:37:in `create'

Request

Parameters:

{"utf8"=>"✓",
 "authenticity_token"=>"wU9MgWv40XMqoy0sDZXd5vtqpFGxXHPmLNm/BmrvVZY=",
 "project"=>{"client"=>"1",
 "pstate"=>"1",
 "name"=>"Projecto 1",
 "description"=>"el ultimo",
 "start_date(1i)"=>"2014",
 "start_date(2i)"=>"11",
 "start_date(3i)"=>"27",
 "deadline(1i)"=>"2014",
 "deadline(2i)"=>"11",
 "deadline(3i)"=>"27",
 "workload"=>"",
 "user_ids"=>["",
 "1",
 "2"]},
"commit"=>"Create Project"}

-我尝试了很多不同的东西......

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby relationship


    【解决方案1】:

    尝试将其更改为:

    @users = User.find params[:project].delete[:user_ids]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-13
      • 2015-03-24
      • 2016-06-10
      • 1970-01-01
      相关资源
      最近更新 更多