相关疑难解决方法(0)

Rails:link_to with:remote => true不起作用

我正在尝试实现类似于Stack Overflow上的投票系统.(使用Rails 3)我希望在没有页面重新加载的情况下完成投票,所以我有这个代码

link_to("/tags/#{tag.id}/upVote", :remote => true )
Run Code Online (Sandbox Code Playgroud)

所以在我的/ views/tags目录中,我有一个名为_upVote.js.erb的文件,我认为在单击此链接时会调用该文件,但事实并非如此.它试图以HTML格式处理upVote,这是我得到的错误

缺少模板标签/ upVote {:formats => [:html]

另外,这是我的路线文件中的内容

match "tags/:id/upVote" => "tags#upVote"
Run Code Online (Sandbox Code Playgroud)

任何想法我怎么能让这个工作?

ruby-on-rails

4
推荐指数
1
解决办法
1万
查看次数

远程:true 选项不适用于 rails 4 中的文件字段

我正在尝试使用包含输入字段和文件字段的 remote:true 选项通过 ajax 提交表单(需要上传图像)

这是我的观点

= form_tag("/campaigns/upload_form", method: 'post', format: :js, enctype: 'multipart/form-data', remote: true) do
Run Code Online (Sandbox Code Playgroud)

其中包含文件字段

= file_field :campaign, :fb_photo, class: 'form-control', id: 'fb_campaign_product_photo', title: 'Upload Image for your Product'
Run Code Online (Sandbox Code Playgroud)

在控制器动作中

def upload_form
    # do some stuff
    respond_to do |format|
     format.html
     format.js
    end
  end
Run Code Online (Sandbox Code Playgroud)

当我提交没有文件字段的表单时,它正在处理并正确呈现为 JS

Started POST "/campaigns/upload_form" for 127.0.0.1 at 2016-03-21 18:06:51 +0530
Processing by CampaignsController#upload_form as JS
Run Code Online (Sandbox Code Playgroud)

但是当我尝试提交文件字段时,它正在处理为 HTML 并抛出模板丢失错误,因为我没有为此添加视图。

编辑这篇文章来说明:我已经按照下面的答案中的建议尝试了 remotipart gem,它对我有用,但仍然在浏览器控制台中出现以下错误

jquery.js?body=1:9665 POST http://localhost:3000/campaigns/upload_form 500 (Internal Server Error)
Run Code Online (Sandbox Code Playgroud)

并在 development.log 中出现以下错误

 ActionView::MissingTemplate - …
Run Code Online (Sandbox Code Playgroud)

javascript forms ajax jquery ruby-on-rails

3
推荐指数
1
解决办法
2468
查看次数

标签 统计

ruby-on-rails ×2

ajax ×1

forms ×1

javascript ×1

jquery ×1