user
ve project
modelleriyle ilgili olan task
modelim var.Birden çok kahve işlemesi için desen
Bir görev oluşturduğumda/güncellediğimde, yalnızca görev değişikliği/ekleme için değil, proje ve kullanıcı bilgileri için (bu verilerin bir kısmı da değişebileceğinden) görünüm eşzamansızlığında bir güncelleme yapmam gerekiyor./Create.js.coffee
# Update task table
$('#mytable').append("<%= j render(partial: 'tasks/task', locals: { t: @task }) %>")
# Update user data
$('.user-data').html("<%= j render(partial: 'users/user_widget', locals: { u: current_user }) %>")
# Update project data
$('.project-data').html("<%= j render(partial: 'projects/project_widget', locals: { p: @project }) %>")
def create
@task = Task.new(params[:task])
@project = Project.find(params[:project_id])
respond_to do |format|
if @task.save
format.html { redirect_to @task, notice: 'Task was successfully created.' }
format.json { render json: @task, status: :created, location: @task }
else
format.html { render action: "new" }
format.json { render json: @task.errors, status: :unprocessable_entity }
end
end
end
Ve görevleri Ve harika çalışır:
ben denetleyicisi bu var. Her yılında
ben çok fazla kod tekrarlıyorum, eklemek
.js.coffee
render: Ben 2 sorunları görüyoruz. Proje ve kullanıcı verilerini güncellemek, görev güncellemelerini, görevleri yıkmak için tam olarak aynı kodu kopyalarım ve kullanıcı ve projeyi etkileyebilecek yeni bir model için aynısını yapardımProjeyi işlemek tuhaf görünüyor görevler/create.js.coffee nedenle
kullanıcı verisi, ben bu şeyleri işlemek için daha iyi bir model için herhangi bir fikir arıyorum?
DÜZENLEME (netleştirmek için): Ben ulaşmada düşünüyorum böyle bir şey daha iyi olurdu:
görevler/create.js.coffee
# Update task table
$('#mytable').append("<%= j render(partial: 'tasks/task', locals: { t: @task }) %>")
UserData.refresh()
ProjectData.refresh()
Ancak, ben yapamam çünkü her defasında kısmi render yapmam gerektiğinden, bu html kısmi kısmını refresh()
işlevlerine geçirmek gibi garip bir şey yapmak zorunda kalacağım ve bir önceki yolla aynı olurdu. Bu, aklıma gelen bir yoldu, ancak eğer varsa fikrinizi duymak isterim.
Sorduğun şey bana açık değil. Ne yapmaya çalışıyorsun? –
Şu anda bu makalede anlattığım 2 sorundan kaçınmaya çalışıyorum: Proje ve kullanıcıyla ilgili bu modellerin her birindeki projeyi ve kullanıcı verilerini güncellemek için kodu tekrarlamamak. Ve görev js içinde kullanıcı ve proje güncelleme sorumluluğu yok. Bu konular çok ilgili olsa da –
@DaveNewton Benim düşünceme bak, bazı şeyleri açıklığa kavuşturabilirim, bu –