У меня был следующий код в моем действии на создание. tasks_comtroller.rbКак вызвать метод в контроллере?
def create
@task = current_user.tasks.build(task_params)
@task.complete = false
n=1
loop do
unless Task.find_by priority: n
@task.priority=n
break
end
n+=1
end
respond_to do |format|
if @task.save
format.html { redirect_to user_tasks_path(current_user) }
format.js
else
format.html { render action: 'new' }
format.js
end
end
end
Тогда я вынул какую-то часть я сделал метод внутри моей модели задачи.
class Task < ActiveRecord::Base
def priority_increment
n=1
loop do
unless Task.find_by priority: n
@task.priority=n
break
end
n+=1
end
end
end
Как я могу корректно вызвать этот метод с контроллера?
Thats действительно неэффективно, так как каждая итерация должна сделать запрос к базе данных - вместо того, чтобы сделать 'Task.order (: приоритет) .first' и пусть база данных выполняет свою работу. – max
@max Можете ли вы привести пример того, как должен выглядеть этот код, чтобы я мог принять ваш ответ? Я использую это для увеличения приоритета. –
@max Я просто не совсем понимаю вашу линию. –