Казалось бы, проблема в том, что @task равен нулю.
Возможно скопируйте и вставьте код контроллера.
Обычно я бы включал ненулевой @task в действия "new" и "edit"
def new
@task = Task.new
end
def create
@task = Task.new(params[:task])
...
end
def edit
@task = Task.find(params[:id])
end
Я предполагаю, что в этом примере @task равен нулю.
<ч />
изменить: добавив лучший способ сделать форму отправки.
Также я бы предложил не использовать атрибут html: on_click.
в частности, это не отправит ajax submit.
Я предлагаю вам использовать помощников jquery rails, чтобы отправить его через ajax.
А именно добавьте параметр: remote => true в form_for
<% form_for(@task, :id => "status", :remote => true) do |f| %>
Также в Rails> 3 вы должны использовать <%=
для этого типа тега.
<%= form_for(@task, :id => "status", :remote => true) do |f| %>
Давайте переписать все это
<%= form_for(@task, :id => "status", :remote => true) do |f| %>
<%= f.check_box :called %>
<%= f.submit %>
<% end %>
<script>
jQuery(function($){
// grab the form in this closure;
var form = $("form#status");
// hide the submit button
form.find("input[type=submit]").hide();
// set the click handler
$("#task_called").click(function(){
form.submit();
});
});
</script>