閲覧いただきまして、誠にありがとうございます。
Railsでクラウドファンディングのようなサービスを作成しています。
現在、エラーが出ているのは、クラウドファンディングのプロジェクト(Projectモデル)に参画しているユーザーを既に登録しているユーザー(Userモデル)の中から検索して複数追加するという機能を実装している際です。
undefined local variable or method `m' for
こちらにありますQiita記事を参考に進めていたのですが、エラーおよび構造上理解が追いついておらず、エラーを解消することができずにいます。
https://qiita.com/shizuma/items/5bfcf6c1e855b959e135
すみませんが、どなたかおたすけくださいませ。
Projectモデル(app/models/project.rb)
Ruby
1class Project < ApplicationRecord 2 has_many :users, through: :user_projects 3 has_many :user_projects 4 accepts_nested_attributes_for :user_projects, allow_destroy: true 5end
Userモデル(app/models/user.rb)
Ruby
1Class User < ApplicationRecord 2 has_many :projects, through: :user_projects 3 has_many :user_projects 4end
中間テーブル(app/models/user_project.rb)
Ruby
1class UserProject < ApplicationRecord 2 belongs_to :user 3 belongs_to :project 4end
Projectコントローラー(app/controllers/project_controllers.rb)
Ruby
1・・・ 2 def new 3 @project = Project.new 4 @project.user_projects.build 5 end 6 7 8 def create 9 @project = Project.create(create_params) 10 if @project.save 11 flash[:success] = "新しくプロジェクトが追加されました!" 12 redirect_to @project 13 else 14 flash[:alert] = "プロジェクトの追加に失敗しました。" 15 redirect_to new_project_path 16 end 17 end 18・・・ 19 private 20 21 def create_params 22 params.require(:project).permit(:id, :name, user_projects_attributes: [:user_id, :project_id]) 23 end
プロジェクト作成画面(app/views/projects/new.html.erb)
Ruby
1<section class="form"> 2 <div class="mainContainer"> 3 <h2>プロジェクトの新規作成</h2> 4 <%= form_for(@project) do |f| %> 5 <div class="formItem"> 6 <h3>メンバー追加</h3> 7 <%= f.fields_for :user_projects, id: "add_member_#{m.index}", class: "js-team_member" do |m| %> 8 <%= m.collection_select :user_id, User.all, :id, :name %> 9 <span class="member_delete" id="#{m.index}">Delete</span> 10 <p id="add_item_button">追加する</p> 11 <% end %> 12 </div> 13 <% end %> 14 </div> 15</section> 16 17<script> 18 var member_num = $(".js-project_member").length; 19 $("#add_item_button").on("click", function() { 20 var input = 21 '<div class="js-project_member" id="add_member_' + 22 member_num + 23 '">' + 24 '<select name="project[category_id]" id="project_category_id">' + 25 '<span class="member_delete" data-id="' + 26 member_num + 27 '">' + 28 "Delete" + 29 "</span>" + 30 "</div>"; 31 $("#project_members_box").append(input); 32 member_num++; 33 }); 34</script>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/07 02:32