2014-10-05 130 views
-1

我有一个静态控制器和用户控制器。Ruby on Rails ajax 500语法错误

我有一个用户配置文件页面,我想用ajax来替换现有的代码。在页面上,我有一个编辑按钮,可以转到用户控制器中的编辑操作并进入edit.js.erb视图。在这个观点,我有以下代码:

$("<%= escape_javascript(render 'static/profile_form'%>").appendTo("#ajax-profile"); 

每次我试图使它的工作,我得到这样的错误:

Started GET "https://stackoverflow.com/users/edit" for 127.0.0.1 at 2014-10-05 17:42:19 -0400 

Started GET "https://stackoverflow.com/users/edit" for 127.0.0.1 at 2014-10-05 17:42:19 -0400 

Processing by UsersController#edit as JS 

Processing by UsersController#edit as JS 

    User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 2]] 

    User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1 [["id", 2]] 

    Rendered users/edit.js.erb (1.0ms) 

    Rendered users/edit.js.erb (1.0ms) 
Completed 500 Internal Server Error in 61ms 
Completed 500 Internal Server Error in 61ms 

SyntaxError (/Users/UserNameRedacted/Desktop/magazine_alive/yourcoolapp/app/views/users/edit.js.erb:1: syntax error, unexpected tLABEL, expecting ')' 
...tput_buffer.append=(j (render: 'static/profile_form');@out... 
...        ^): 
    app/views/users/edit.js.erb:1: syntax error, unexpected tLABEL, expecting ')' 



SyntaxError (/Users/UserNameRedacted/Desktop/magazine_alive/yourcoolapp/app/views/users/edit.js.erb:1: syntax error, unexpected tLABEL, expecting ')' 
...tput_buffer.append=(j (render: 'static/profile_form');@out... 
...        ^): 
    app/views/users/edit.js.erb:1: syntax error, unexpected tLABEL, expecting ')' 

我一直在通过控制台创建我的所有用户,因此我还没有填写任何用户的表单。这可能是一个问题吗?没有要编辑的信息?我不想要新的/创建视图,因为我有一个用户登录页面。

在我的用户控制我有:

class UsersController < ApplicationController 

    def create 

    @user= User.find_by(session[:user_id]) 

    @user.create(user_params) 

    end 

    def edit 

    @user= current_user 

    end 

    def update 

    @user=current_user 

    @user.update(user_params) 

    end 

private 

    def user_params 

    params.require(:user).permit(:first_name,:last_name,:email,:bio,:avatar) 

    end 

end 

静态控制器

def profile 

    @my_articles = Article.all.order('created_at desc').where(:user_id => current_user).limit(5); 

    @user= current_user 

end 
+0

显示我们'应用程序/视图/用户/ edit.js.erb'。根据错误的问题是 – JTG 2014-10-05 22:15:33

+0

$('#ajax-profile')。prepend(“<%= j(render:'static/profile_form'%>”); – Kohl 2014-10-05 22:21:43

回答

0

所以你的错误说:

app/views/users/edit.js.erb:1: syntax error, unexpected tLABEL, expecting ')' 

它期待一个右括号。如果你看看你的代码:

$('#ajax-profile').prepend(" <%= j (render: 'static/profile_form' %> "); 

你会注意到你有不匹配的括号。

我怀疑你需要的代码更改为这个

$('#ajax-profile').prepend(" <%= j (render: 'static/profile_form')%> ");