javascript – Ruby Rails – 为AJAX调用控制器动作构造数据
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – Ruby Rails – 为AJAX调用控制器动作构造数据,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3180字,纯文字阅读大概需要5分钟。
内容图文
我需要在我的网站上有一个按钮,可以将信息发送到控制器的创建操作(“页面时间”).它似乎正在工作,虽然它没有发送我指定的所有数据 – 可能与我无法构建数据向量有关.我通过post’pagetimes / create’在我的config / routes.rb文件中提供了POST请求
在application.js中:
function submitForm() {
alert("checked the button - worked");
$.ajax({
type:'POST',
url: '/pagetimes/create',
data: { pagename: "whatever", start: 7, end: 21 } ,
});
}
其中:pagename,:start和:end是我的数据表中的列(字符串,整数,整数),并且可以在模型中访问,并且可以在手册条目“新”页面中显示的新页面时间中显示.
在我的页面视图中:
<button type="button" onclick="submitForm()">Send data</button>
其他一切都非常标准.我可以在我的数据库中看到帖子正在成功提交,但我尝试填充的3个数据字段都是NULL.可能这与我构建数据的方式有关:{}字段?
O / W,Win7上的Rails 3,没有使用任何其他可能与此有关的花哨……
更新1:这是我试图发布的表单源代码.也许我指的是错误的字段?
<div class="form-inputs">
<div class="control-group string optional pagetime_pagename"><label class="string optional control-label" for="pagetime_pagename">Pagename</label><div class="controls"><input class="string optional" id="pagetime_pagename" name="pagetime[pagename]" size="50" type="text" /></div></div>
<div class="control-group integer optional pagetime_start"><label class="integer optional control-label" for="pagetime_start">Start</label><div class="controls"><input class="numeric integer optional" id="pagetime_start" name="pagetime[start]" step="1" type="number" /></div></div>
<div class="control-group integer optional pagetime_end"><label class="integer optional control-label" for="pagetime_end">End</label><div class="controls"><input class="numeric integer optional" id="pagetime_end" name="pagetime[end]" step="1" type="number" /></div></div>
</div>
更新2:这是包含POST的我的日志:
Started POST "/pagetimes/create" for 127.0.0.1 at 2014-01-02 12:45:48 -0500
Processing by PagetimesController#create as */*
Parameters: {"end"=>"21", "pagename"=>"whatever", "start"=>"7"}
[1m[35mUser Load (1.0ms)[0m SELECT "users".* FROM "users" WHERE "users"."id" = 1 LIMIT 1
[1m[36m (0.0ms)[0m [1mbegin transaction[0m
[1m[35mSQL (15.0ms)[0m INSERT INTO "pagetimes" ("created_at", "end", "pagename", "start", "updated_at", "user_id") VALUES (?, ?, ?, ?, ?, ?) [["created_at", Thu, 02 Jan 2014 17:45:48 UTC +00:00], ["end", nil], ["pagename", nil], ["start", nil], ["updated_at", Thu, 02 Jan 2014 17:45:48 UTC +00:00], ["user_id", 1]]
[1m[36m (7.0ms)[0m [1mcommit transaction[0m
Redirected to http://localhost:3000/pagetimes/22
Completed 302 Found in 91ms (ActiveRecord: 24.0ms)
更新3:控制器动作
def create
@pagetime = Pagetime.new(params[:pagetime])
@pagetime.user = current_user
respond_to do |format|
if @pagetime.save
format.html { redirect_to @pagetime, notice: 'Pagetime was successfully created.' }
format.json { render json: @pagetime, status: :created, location: @pagetime }
else
format.html { render action: "new" }
format.json { render json: @pagetime.errors, status: :unprocessable_entity }
end
end
end
解决方法:
function submitForm() {
alert("checked the button - worked");
$.ajax({
type:'POST',
url: '/pagetimes/create',
data: $.param({ pagetime: {pagename: "whatever", start: 7, end: 21 }})
});
}
内容总结
以上是互联网集市为您收集整理的javascript – Ruby Rails – 为AJAX调用控制器动作构造数据全部内容,希望文章能够帮你解决javascript – Ruby Rails – 为AJAX调用控制器动作构造数据所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。