我很新的rails和試圖創建一個應用程序由我自己的待辦事項列表。如何通過form_for傳遞參數時涉及多個模型
如何在下面的表格中傳遞參數「類別名稱」和「任務描述」。
用戶/顯示/ html.erb
<aside class="col-md-8">
<section>
<%= render 'tasks/new' %><br>
</section>
<section>
<% if @user.tasks.any? %>
<ol class="tasks">
<%= render @tasks %>
</ol>
<% end %>
</section>
</aside>
任務/ new.html.erb
<div class="form-inline">
<%= form_for([@user, @user.tasks.build]) do |f| %>
<select id="selectUser" class="form-control selectWidth">
<option class="">Select Category</option>
<% @user.categories.all.each do |category| %>
<option class="">
<%= category.name %>
</option>
<% end %>
</select>
<%= f.label :description %>
<%= f.text_area :description, class: 'form-control' %>
<%= f.submit %>
<% end %>
</div>
控制器/ tasks_controller
class TasksController < ApplicationController
def create
@user = User.find(params[:id])
@category = Category.find_by(name: params[:category])
@task = @user.tasks.create(task_params)
redirect_to user_path(@user)
end
private
def task_params
params.require(:task).permit(@category.name, :description)
end
end
柱從任務表是
- ID
- 描述
- USER_ID(與用戶表參考)
- CATEGORY_ID(帶類別表參考)
柱從類別表是:
- ID
- 名
- user_id(引用用戶表)
我試圖從新的任務形式傳遞參數是從category
表name
和description
從tasks
表
我想類別的任務,同時我想類別鏈接到用戶(每個用戶應該能夠創建自己的類別)。我將tasks控制器中的create action改爲'tasks/_new.html.erb'中的'@task = current_user.tasks.new(task_params)'形式爲'<%= form_for([@ user,@ user.tasks。 build])do | f | %>'現在我沒有收到任何錯誤,但它沒有創建新任務 – Trishj
你在日誌中看到什麼?我仍然沒有真正得到你想要的類別。你能告訴我一個例子嗎? –
我想我錯過了@ @ task.save'命令。我現在能夠創建新的任務。我正在使用應用中的類別來分類「待辦事項」或「購物」等任務。 – Trishj