Rails:AJAX表单不在heroku上传递参数但在本地工作

时间:2015-05-09 06:28:45

标签: ajax ruby-on-rails-4 heroku

我无法在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;

0 个答案:

没有答案