【问题标题】:The action 'update' could not be found for Admin::PagesController找不到 Admin::PagesController 的操作“更新”
【发布时间】:2013-09-24 12:20:14
【问题描述】:

我有一个带有 ActiveAdmin gem 的 rails 3 应用程序。我制作了一个 page.rb 文件,其中显示了管理员可以更新的我网站的静态页面列表。针对具体需要,我提出了海关意见。一切正常,除非我尝试更新页面。我收到错误The action 'update' could not be found for Admin::PagesController。但是,我的 page.rb 文件拥有一个更新方法!谁能解释一下我做错了什么?

我的 page.rb 文件:

ActiveAdmin.register_page 'Pages' do
  content only: :index do
    render 'index'
  end

  content only: :edit do
    render partial: 'edit'
  end

  controller do
    layout 'active_admin'

    def index
      @search = Page.includes(:translations).where("page_translations.locale='fr'").metasearch(params[:search])
      @pages = @search.page params[:page]
    end

    def edit
      @page = Page.find params[:id]
    end
  end

  def update
    @page = Page.find(params[:id])
    @page.update_attributes(params[:page])
    redirect_to(admin_path :notice => 'Coool')
    return
  end
end

以及提交页面的表单:

<%= semantic_form_for([:admin, @page], url: admin_page_path, method: :put) do |f| %>
  <%= f.inputs do %>
    <%= f.input :permalink %>
    <%= f.globalize_fields_for :fr do |g| %>
      <%= g.text_field :name %>
      <%= g.text_area :content %>
    <% end %>
    <%= f.globalize_fields_for :en do |g| %>
        <%= g.text_field :name %>
        <%= g.text_area :content %>
    <% end %>
  <% end %>
  <%= f.button "Save" %>
  <%= link_to("Cancel", admin_pages_path) %>
<% end %>

【问题讨论】:

  • 我收到此错误 - ActionView::Template::Error(#<:views::activeadminform:0x000055dffbc4f488> 的未定义方法 `globalize_fields_for')

标签: ruby-on-rails-3.1 activeadmin


【解决方案1】:

您的 update 方法不在 controller 块内。尝试将其移高几行。

【讨论】:

  • 一个错误的“结束”,下面的所有内容都被忽略...谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-16
  • 1970-01-01
  • 2015-10-02
  • 2016-10-14
  • 1970-01-01
  • 2013-08-13
  • 2020-09-19
相关资源
最近更新 更多