0

このレールキャストに従って、静的ページを処理するための簡単なソリューションを実装していました: http://railscasts.com/episodes/117-semi-static-pages-revised?view=asciicast

私が抱えている特定の問題は、ページコントローラーで更新メソッドを機能させることです。

私のルートファイル:

Jog::Application.routes.draw do
root :to => 'categories#index'
devise_for :categories
devise_for :users
resources :categories do
  resources :gists
end
resources :sub_categories, :gists, :pages, except: "show, edit, update, destory" 
get ':id', to: 'pages#show', as: :page 
get ':page/edit', to: 'pages#edit', as: :edit_page 
put ':page', to: 'pages#update', as: :update_page
delete ':page', to: 'pages#destroy', as: :destroy_page  
end

これが私のモデルです:

class Page < ActiveRecord::Base
resourcify
attr_accessible :content, :name, :permalink
validates_uniqueness_of :permalink

def to_param
permalink
end
end

私のコントローラーの更新方法:

def update
@page = Page.find_by_permalink!(params[:page])

respond_to do |format|
  if @page.update_attributes(params[:page])
    format.html { redirect_to @page, notice: 'Page was successfully updated.' }
    format.json { head :no_content }
  else
    format.html { render action: "edit" }
    format.json { render json: @page.errors, status: :unprocessable_entity }
  end
end
end

私のエラー: "test":String の未定義のメソッド `stringify_keys'

他の「stringify_keys」エラーを調査しましたが、これに似たものは見つかりませんでした。ご協力いただきありがとうございます。

4

2 に答える 2

0

ルーティングファイルで、値を文字列からシンボルの配列に変更します。あなたが除外しようとしている方法を理解していないと思います。

resources :sub_categories, :gists, :pages, except: [:show, :edit, :update, :destroy]

そうでない場合は、エラーが指している行番号を指摘できますか?test変数はどこで使用されていますか?

于 2012-10-19T23:17:45.877 に答える
0

関数が文字列またはシンボルではなくコレクションを期待している場合、String_keys エラーがスローされます。上記のリソース関数の :except オプションは、シンボル形式のアクションの名前を持つ配列を想定しています...

また、テスト変数が使用されている場所とエラーが発生している行を教えてください...

于 2012-10-20T05:54:38.007 に答える