2016-06-16 21 views
0

我正在開發一個將預算添加到團隊的簡單工具。它的作用類似於待辦事項列表。需要刷新才能顯示創建的項目

刪除功能無需重新加載,但創建功能需要刷新(數據被添加到數據庫罰款)。

這是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 
+0

你的文件名是'create.erb.js'而不是'create.js.erb'嗎? – Pavan

+0

謝謝帕文,那是錯誤的問題,在圖書館它的create.js.erb –

回答

0

我們最終在budgets_controller中添加了一個set_project方法。

def set_project 
    @project = Project.find(params[:project_id]) 
end 

然後爲它設置一個before_action。我認爲我們遇到的問題是它正在尋找一個project_id,但是當我們創建一個新的預算項目時,我們沒有把它傳遞給一個項目。

+0

謝謝理查德,優秀的 –

相關問題