我目前正在做一個簡單的應用程序,我試圖在創建新任務時實現ajax。我想呈現的部分將包含新任務的信息,然後將其追加到已經存在的表,但我不斷收到以下錯誤:無法在我的rails項目中使用Ajax顯示動態內容
POST http://localhost:3000/projects/4/tasks 500 (Internal Server Error)
這是我的任務創建表單
# app/view/tasks/_create_task.html.erb
<div class="row">
<div class="col-md-5">
<%=form_for [@project, @task], remote: true do |f| %>
<div class="form-group">
<%=f.label :task_name %>
<%=f.text_field :task_name, class: "form-control"%>
</div>
<div class="form-group">
<%=f.label :deadline %>
<%=date_select :task, :deadline, class: "form-control" %>
</div>
<%=f.submit "Create task", class: 'btn btn-info' %>
<%end%>
</div>
</div>
這裏是我的任務控制器代碼創建行動
#app/controllers/tasks_controller.rb
before_action :set_project
def create
@task = @project.tasks.build(set_params).save
respond_to do |format|
format.html do
if @task.valid?
flash[:notice] = "Your task has been successfully saved"
redirect_to project_path(@project)
else
render 'projects/show'
end
end
format.js
end
end
private
def set_params
params.require(:task).permit!
end
def set_project
@project = Project.find(params[:project_id])
end
和相應的create.js.erb模板
#app/view/tasks/create.js.erb
$('#task-table').append("<%= j render 'task', task: @task, project: @project%>");
最後部分,我想呈現:
#app/views/tasks/_task
<% if task.erased %>
<% row_class = 'hidden'%>
<% end %>
<% if task.erased == nil && task.checked %>
<% row_class = 'row-disabled success' %>
<% icon_class = 'glyphicon glyphicon-ok check-icon' %>
<%elsif task.erased == nil && task.checked == nil %>
<% row_class = '' %>
<% icon_class = 'glyphicon glyphicon-unchecked check-icon ' %>
<% end %>
<tr class = "<%= row_class %>" id = 'task-row' >
<td>
<%= link_to project_check_task_path(project, task, checked: true), method: 'patch' do %>
<span class= "<%=icon_class %>"></span>
<% end %>
</td>
<td><%= task.task_name %></td>
<td><%= task.created_at.strftime("%b %d, %Y")%></td>
<td><%= task.deadline.strftime("%b %d, %Y")%></td>
<td>
<%= link_to project_erase_task_path(project, task, erase: true), method: 'patch' do %>
<span class = "glyphicon glyphicon-trash"></span>
<% end %>
</td>
</tr>
注:不用翻譯的部分I'have嘗試任何動態內容追加如@ task.title等,以及所有投擲同樣的錯誤。
感謝您的幫助。
我注意到第一個問題是,你需要允許任務屬性太(TASK_NAME,...) – mohameddiaa27 2014-10-30 17:01:23
你有沒有看應用程序會記錄以查看是否有其他信息? – Mir 2014-10-30 17:01:54
提供此錯誤的完整日誌。 – 2014-10-30 17:07:35