Pur*_*gon 3 ruby ruby-on-rails
我正在构建我的第一个rails应用程序,并且对ruby和rails都是新手.我试图通过ajax提交表单后在页面上呈现提交消息.
我在表单中添加了:remote => true参数.但是,在我的应用程序中,我似乎无法呈现消息.作为测试,我已经设置了一个新的rails应用程序,并使用脚手架生成了一个帖子模型和视图等.
我将remote:remote => true添加到生成的表单中.它将数据提交给db.我已经读过我可以更新控制器以包含带有format.js的js,在这种情况下更新posts_controller.rb func to
def new
@post = Post.new
respond_to do |format|
format.html # new.html.erb
format.js
end
end
Run Code Online (Sandbox Code Playgroud)
一些教程说你可以在views/posts文件夹中添加一个new.js.erb或create.js.erb(不确定它应该是什么),这应该被执行但除了提交的数据之外没有任何其他事情发生.
我也尝试过:
format.js { render :js => "alert('Hello Rails');" }
Run Code Online (Sandbox Code Playgroud)
作为测试.
我正在使用rails 3.1而且我不知道接下来应该尝试什么
你快到了.提交的表单由create操作处理,而不是由new处理.你已经掌握了处理html或js的语法 - 你只需要在你的创建动作中使用它,以及包含你要渲染的js的create.js.erb.
你的PostsController应该有一个创建功能
def create
@post = Post.new(params[:post])
respond_to do |format|
if @post.save
format.html
format.js
else
format.html { render :action => 'new' }
format.js { render 'fail_create.js.erb' }
end
end
end
Run Code Online (Sandbox Code Playgroud)
创建一个名为create.js.erb的文件(在posts的views目录中),包含
alert('Hello Rails');
Run Code Online (Sandbox Code Playgroud)
对于成功案例,你应该好好去.创建第二个名为fail_create.js.erb的文件,其中包含要在失败时呈现的任何javascript(例如,当提交的表单数据未通过模型的验证时).
| 归档时间: |
|
| 查看次数: |
2091 次 |
| 最近记录: |