0

Ruby on Railsを使用してWebアプリを構築していますが、ルートをユーザーが編集できるようにしたいと考えています。そのため、ユーザーが指定したルートを追加するための単純な初期化子を追加することを考えましたが、これをどのように行うことができるのか本当にわかりません。それを行う簡単な方法はありますか?私はこれを試しましたapplication.rb

config.after_initialize do
    Rails.application.reload_routes!
    Rails.logger.info "#{Rails.application.routes.routes.map(&:path)}"
    MyApp::Application.routes.draw do
        get '/droplet' => 'admin#index'
    end
end

しかし、それはうまくいかないようです。これは私が私の中に持っているものですroutes.rb

MyApp::Application.routes.draw do
    devise_for :users 

    root :to => 'target_finder#show_page'
    match '*path' => 'target_finder#show_page'

end

前もって感謝します!

4

2 に答える 2

0

ユーザーの任意の属性からカスタムルートを定義できるfriendly_idgemを確認することをお勧めします。これにより、ユーザー属性を作成し、インデックスを追加してユーザーモデルに:url追加することでルートに使用できます。slugextend FriendlyIdfriendly_id :url, use: :slugged

于 2013-01-18T20:39:56.320 に答える
0

パラメータを取り込んで、設定されたルートと一致するかどうかをテストし、そこからアクションを実行するコントローラアクションを作成してはどうでしょうか。

MyApp::Application.routes.draw do
    devise_for :users 

    root :to => 'target_finder#show_page'
    match '*path' => 'test_if_custom#CustomController'

end

class CustomController < ActionController::Base

  def test_if_custom
    if url_for(params) == Rails.application.routes.routes.map(&:path)
      take_custom_action
    else
      take_default_action # Redirects or errors, maybe.
    end
  end

end
于 2013-01-18T20:40:30.443 に答える