我运行到我正在研究一个 Rails 应用程序有问题。已成功将对象保存到数据库,但当它们呈现在 DOM 中,它们的属性最初显示为未定义。刷新浏览器时就够了。

我不确定这个问题需要解决。

Document.ready:

$(function() {
    fetchClientsAndJobs();
});

问题中的函数︰

function fetchClientsAndJobs() {
    $.get('/clients').done(function(clientData) {
        clientData.forEach(renderClient);
        $.get('/jobs').done(function(jobData) {
            jobData.forEach(renderJob)
        });
    });
}

和︰

function addClient() {    
    var clientNameInput = $('input[name="name"]').val();
    var clientRateInput = $('input[name="rate"]').val();
    var clientEmailAddress = $('input[name="email-address"]').val();
    var newClient = {
        client: {
            name: clientNameInput,
            rate: clientRateInput,
            email_address: clientEmailAddress
        }
    };
    $.post('/clients', newClient).done(function(clientData) {
        renderClient(clientData)
        });
    $('input[name="name"]').val('');
    $('input[name="rate"]').val('');
    $('input[name="email-address"]').val('');
}

控制器的操作︰

def create
    @client = Client.new(client_params)
    @client.user_id = session[:current_user]
    if @client.save
        redirect_to root_path
    else
        redirect_to new_client_path
    end     
end

任何输入一定这样做。谢谢 !

2014-12-31 00:00:00
问题评论:

您正在使用 turbolinks?通常的短语"刷新浏览器时就够了"指向如何编写与 turbolinks 的 javascript 错误地理解。

回答:

客户端代码似乎希望创建操作以返回新创建的客户端有关的数据 (因为要renderClient调用中done您的帖子.

但是您创建操作重定向到您的应用程序的根我不知道,呈现,但几乎可以肯定不是数据预期。

通常有沿行的内容

respond_to do |format|
  format.json { render json: @client } #or whatever you are using to serialize your models to json
  format.html { redirect_to root_path }
end

这是问题。谢谢,我喜欢它。新年快乐!

请输入您的翻译

DOM element properties undefined - jquery / ruby on rails

确认取消