我正在开发一个将预算添加到团队的简单工具。它的作用类似于待办事项列表。需要刷新才能显示创建的项目
删除功能无需重新加载,但创建功能需要刷新(数据被添加到数据库罚款)。
这是create.js.erb
$('.budget_items').append("<%= j render partial: 'budget', locals: {budget: @budget} %>");
这是部分:_budget.html.erb
<li id="<%= budget.id %>">
<%= budget.budget_item %>
<%= budget.quantity %>
<%= budget.cost_per_item %>
Total cost: <%= budget.quantity * budget.cost_per_item %>
<%= link_to "delete budget item", project_team_budget_path(@project, @team,
budget), method: 'delete', remote: true %>
</li>
<h1>My Estimated Budget</h1>
<h3>Total Budget: </h3>
<%= simple_form_for [@project, @team, @budget], remote: true do |f| %>
<div class="form-group">
<%= f.input :budget_item %>
</div>
<div class="form-group">
<%= f.input :quantity %>
</div>
<div class="form-group">
<%= f.input :cost_per_item %>
</div>
<div class="form-group">
<%= f.submit "Add budget item" %>
</div>
<% end %>
<ul class="budget_items">
<%= render @budgets %>
</ul>
这是预算控制器:
class BudgetsController < ApplicationController
def index
@budgets = Budget.all
end
def create
@team = Team.find(params[:team_id])
@budget = @team.budgets.create(budget_params)
respond_to do |format|
format.html { redirect_to project_team_budgets_path }
format.js { }
end
end
def destroy
@team = Team.find(params[:team_id])
@budget = @team.budgets.find(params[:id])
@budget.destroy
respond_to do |format|
format.html { redirect_to project_team_budgets_path }
format.js { }
end
end
private
def budget_params
params.require(:budget).permit(:title, :budget_item, :quantity, :cost_per_item)
end
end
你的文件名是'create.erb.js'而不是'create.js.erb'吗? – Pavan
谢谢帕文,那是错误的问题,在图书馆它的create.js.erb –