处理ajax的Rails方法抱怨没有模板?
我有一个subscriber#create
方法,仅用于ajax提交给它(html表单使用data-remote="true"
来执行Ajax。表单确实提交,数据最终在db中但方法抛出表示未找到模板的错误。
如何在Rails中将函数指定为Ajax处理程序? – 一个不必渲染模板等
这是方法的样子:
class SubscribersController params[:email], :ip_address => request.remote_ip, :referring_page => request.referer ) unless Subscriber.find_by_email(params[:email]) end end
您应该正确处理respond_to中的呼叫。
... respond_to do |format| format.html format.js { :nothing => true } end
事情吧,你应该回复一些东西 。 即使它是一个AJAX调用,你也应该发回一些东西让调用者知道创建是成功的。
def create @subscriber = Subscriber.new(#your params) respond_to do |format| if @subscriber.save format.js { render :json => @subscriber, :status => :created, :location => @susbscriber } else format.js { render :json => @susbcriber.errors, :status => :unprocessable_entity } end end end
此外,您不应该在控制器中执行unless Subscriber.find_by_email(params[:email])
。 您应该只将validates_uniqueness_of :email
添加到订阅服务器模型。
你想要像render :layout => !request.xhr?
这样的东西render :layout => !request.xhr?
在您的控制器中,如果请求是ajax,这将阻止布局
- 运行Cucumber测试时Rails应用程序的端口
- 如何在rails 3中validation“file_fields”
- 通过Mongrel Cluster使用Starling和Mongrel的多个实例
- 在Capistrano部署之后,Rails资产没有编译
- ChartKick在PIE和折线图中显示原始值而非百分比
- shoulda匹配器应该validate_uniqueness_of与范围失败
- object.valid? 返回false但object.errors.full_messages为空
- PG :: UndefinedObject:错误:类型“hstore”不存在但它确实存在
- time_splitter gem获取未初始化的常量Sheet :: TimeSplitter