我无法在Heroku上使用AJAX表单,即使它在本地工作。 你可以在这里查看heroku应用程序 -
https://mysterious-wildwood-6447.herokuapp.com/
(表单是位于屏幕右侧的新的subreddit表单)
视图中的表单代码(部分) -
<form class="form-inline" action="/subreddits" accept-charset="UTF-8" data-remote="true" method="post">
<div class="form-group">
<input class="input-small" name="utf8" type="hidden" value="✓">
</div>
<div class="form-group sr-title">
<input class="form-control input-small subreddit_title_field" placeholder="Create new subreddit" type="text" name="subreddit[title]" id="subreddit_title">
</div> <button type="submit" name="commit" class="btn btn-default new-subreddit">Submit</button>
相应控制器中的代码 -
def create
p params[:subreddit_title]
@subreddit = Subreddit.new(title: params[:subreddit_title].downcase)
respond_to do |format|
if @subreddit.save
format.js { render 'create.js.erb' }
else
@error = @subreddit.errors.full_messages.to_sentence
format.js { render 'error.js.erb' }
end
end
end
javascript应用程序代码段(在application.js中) -
$('.new-subreddit').on("click", function(e) {
e.preventDefault();
var form_data = $('.subreddit_title_field').val();
var values = {
subreddit_title: form_data,
}
var ajaxRequest = $.ajax({
url: '/subreddits',
type: 'POST', // GET, PUT, DELETE
data: values,
});
});
本地输出&#34;桥接&#34;作为表单输入(有效) -
tarted POST&#34; / subreddits&#34; for :: 1 at 2015-05-09 11:55:52 +0530 ActiveRecord :: SchemaMigration Load(6.3ms)SELECT&#34; schema_migrations&#34;。* FROM&#34; schema_migrations&#34; 由SubredditsController处理#create as / 参数:{&#34; subreddit_title&#34; =&gt;&#34;桥梁&#34;} &#34;桥&#34; (0.1ms)BEGIN Subreddit存在(0.9ms)SELECT 1 AS as FROM&#34; subreddits&#34;在哪里&#34; subreddits&#34;。&#34; title&#34; =&#39;桥梁&#39;限制1 SQL(0.4ms)INSERT INTO&#34; subreddits&#34; (&#34; title&#34;,&#34; created_at&#34;,&#34; updated_at&#34;)VALUES($ 1,$ 2,$ 3)RETURNING&#34; id&#34; [[&#34; title&#34;,&#34; bridge&#34;],[&#34; created_at&#34;,&#34; 2015-05-09 06:25:53.054220&#34;] ,[&#34; updated_at&#34;,&#34; 2015-05-09 06:25:53.054220&#34;]] (12.3ms)COMMIT 渲染的subreddits / create.js.erb(2.4ms) 在93ms完成200 OK(浏览次数:20.4ms | ActiveRecord:23.4ms)
heroku日志的输出 -
2015-05-09T06:02:56.196766 + 00:00 app [web.1]:已开始发布&#34; / subreddits&#34;适用于2015-05-09 06:02:56 +0000的180.151.86.227
2015-05-09T06:02:56.200751 + 00:00 app [web.1]:由SubredditsController处理#create as /
2015-05-09T06:02:56.203206 + 00:00 app [web.1]:
2015-05-09T06:02:56.203210 + 00:00 app [web.1]:NoMethodError(未定义方法downcase' for nil:NilClass):
2015-05-09T06:02:56.203212+00:00 app[web.1]: app/controllers/subreddits_controller.rb:8:in
创建&#39;