更新模型时,Rails短语Gem给出500错误

时间:2019-04-05 13:53:17

标签: ruby-on-rails

我正在尝试使用rails phraseing gem(https://github.com/infinum/phrasing)在网页上创建一个带有可编辑文本框的页面。当我将普通词组与词组('editable')一起使用时,此方法很好用,但是当我尝试使用它来编辑模型属性时,尝试提交更改时会遇到两个500错误。

我已经将该属性添加到白名单中,甚至当我将配置更改为白名单时,我仍然遇到相同的错误。由于正确显示在页面上,因此已从数据库中获取了正确的数据,所以我不确定这里可能是什么问题。

该短语的代码是

= phrase(@pages, :content)

在控制器中,我正在使用

@pages = Page.where('location = ? AND topic = ?', @current_location, 'topic name').first

从数据库中获取正确的记录

在config / initializers / phrasing.rb中,我已经设置 config.allow_update_on_all_models_and_attributes = true用于测试

页面的架构为:

  create_table "pages", force: :cascade do |t|
    t.string "location"
    t.string "topic"
    t.text "content"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

我在“网络”标签中看到的错误是:

Template is missing

Missing template phrasing_phrases/update, application/update with {:locale=>[:en], :formats=>[:html, :text, :js, :css, :ics, :csv, :vcf, :vtt, :png, :jpeg, :gif, :bmp, :tiff, :svg, :mpeg, :mp3, :ogg, :m4a, :webm, :mp4, :otf, :ttf, :woff, :woff2, :xml, :rss, :atom, :yaml, :multipart_form, :url_encoded_form, :json, :pdf, :zip, :gzip], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :coffee, :haml]}. Searched in:
  * "/home/user/project/app/views"
  * "/home/user/.rvm/gems/ruby-2.4.4/gems/phrasing-4.2.1/app/views"
  * "/home/user/.rvm/gems/ruby-2.4.4/gems/devise_cas_authenticatable-1.10.3/app/views"
  * "/home/user/.rvm/gems/ruby-2.4.4/gems/devise-4.6.1/app/views"

让我知道是否应该提供其他信息来帮助解决此问题。谢谢!

1 个答案:

答案 0 :(得分:0)

如何在控制器中定义update动作?

我想您已覆盖PhrasingPhrasesController

尝试在您的redirect_to操作中返回update

class PageController < ApplicationController
  def update
    // Your code
    redirect_to page_path(@your_page)
  end
end