Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails-扩展引擎&x27;将变量和方法添加到整个应用程序中_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails RubyonRails-扩展引擎&x27;将变量和方法添加到整个应用程序中

Ruby on rails RubyonRails-扩展引擎&x27;将变量和方法添加到整个应用程序中,ruby-on-rails,ruby,Ruby On Rails,Ruby,我在应用程序中使用RubyonRails,在社区方面使用Threded,在身份验证方面使用Desive 虽然我相信这个问题并不是针对任何实际的gem,而是一个一般的rubyonrails问题 要装载Threded Gem,我将以下代码放在route.rb文件中: mount Thredded::Engine => '/community/' 这使得threded gem可以在/community/中完美工作 我想在整个网站上使用THREDD导航 我可以通过使用链接到threded路径,但

我在应用程序中使用RubyonRails,在社区方面使用Threded,在身份验证方面使用Desive

虽然我相信这个问题并不是针对任何实际的gem,而是一个一般的rubyonrails问题

要装载Threded Gem,我将以下代码放在route.rb文件中:

mount Thredded::Engine => '/community/'
这使得threded gem可以在/community/中完美工作

我想在整个网站上使用THREDD导航


我可以通过使用链接到threded路径,但是我还需要访问threded控制器中定义的操作

例如,在导航的一部分中有以下代码:

<%= link_to private_topics_path, rel: 'nofollow' do %>
    <%= inline_svg 'thredded/private-messages.svg',
                   class: 'thredded--icon',
                   title: safe_join([t('thredded.nav.private_topics'),
                                     (unread_private_topics_count if unread_private_topics_count > 0)].compact, ' ') %>
    <span class="thredded--nav-text"><%= t('thredded.nav.private_topics') %></span>
    <% if unread_private_topics_count > 0 -%>
      <span class="thredded--user-navigation--private-topics--unread"><%= unread_private_topics_count %></span>
    <% end -%>
  <% end -%> 
有没有办法在/社区/范围之外访问此内容

以下是红宝石:

以下是下载的导航:

<nav class="thredded--navigation" role="navigation">
  <ul class="thredded--user-navigation<%= ' thredded--user-navigation-standalone' if Thredded.standalone_layout? %>">
    <% if signed_in? && Thredded.standalone_layout? %>
      <li class="thredded--user-navigation--profile thredded--user-navigation--item">
        <%= link_to thredded_current_user, user_path(thredded_current_user) %>
      </li>
    <% end %>

    <%= render 'thredded/shared/nav/notification_preferences', messageboard: messageboard_or_nil %>
    <%= render 'thredded/shared/nav/private_topics' %>

    <% if Thredded.standalone_layout? %>
      <%= render 'thredded/shared/nav/standalone' %>
    <% end %>
  </ul>
  <div class="thredded--main-navigation">
    <%= yield :thredded_breadcrumbs %>
    <%= render 'thredded/search/form', messageboard: messageboard_or_nil %>
  </div>
</nav>
收费路线:

Routes for Thredded::Engine:
                  theme_preview GET    /theme-preview(.:format)                             thredded/theme_previews#show
              new_private_topic GET    /private-topics/new(.:format)                        thredded/private_topics#new
                  private_topic GET    /private-topics/:id(/page-:page)(.:format)           thredded/private_topics#show {:page=>/[1-9]\d*/}
    private_topic_private_posts POST   /private-topics/:private_topic_id(.:format)          thredded/posts#create
 new_private_topic_private_post GET    /private-topics/:private_topic_id/new(.:format)      thredded/posts#new
edit_private_topic_private_post GET    /private-topics/:private_topic_id/:id/edit(.:format) thredded/posts#edit
     private_topic_private_post PATCH  /private-topics/:private_topic_id/:id(.:format)      thredded/posts#update
                                PUT    /private-topics/:private_topic_id/:id(.:format)      thredded/posts#update
                                DELETE /private-topics/:private_topic_id/:id(.:format)      thredded/posts#destroy
                 private_topics GET    /private-topics(.:format)                            thredded/private_topics#index
                                POST   /private-topics(.:format)                            thredded/private_topics#create
             edit_private_topic GET    /private-topics/:id/edit(.:format)                   thredded/private_topics#edit
                                PATCH  /private-topics/:id(.:format)                        thredded/private_topics#update
                                PUT    /private-topics/:id(.:format)                        thredded/private_topics#update
                                DELETE /private-topics/:id(.:format)                        thredded/private_topics#destroy
             autocomplete_users GET    /autocomplete-users(.:format)                        thredded/autocomplete_users#index
           messageboards_search GET    /                                                    thredded/topics#search
            messageboard_search GET    /:messageboard_id(.:format)                          thredded/topics#search
               edit_preferences GET    /preferences/edit(.:format)                          thredded/preferences#edit
                    preferences PATCH  /preferences(.:format)                               thredded/preferences#update
                                PUT    /preferences(.:format)                               thredded/preferences#update
               new_messageboard GET    /messageboards/new(.:format)                         thredded/messageboards#new
  edit_messageboard_preferences GET    /:messageboard_id/preferences/edit(.:format)         thredded/preferences#edit
       messageboard_preferences PATCH  /:messageboard_id/preferences(.:format)              thredded/preferences#update
                                PUT    /:messageboard_id/preferences(.:format)              thredded/preferences#update
         new_messageboard_topic GET    /:messageboard_id/topics/new(.:format)               thredded/topics#new
            messageboard_topics GET    /:messageboard_id(/page-:page)(.:format)             thredded/topics#index {:page=>/[1-9]\d*/}
 categories_messageboard_topics GET    /:messageboard_id/category/:category_id(.:format)    thredded/topics#category
             messageboard_topic GET    /:messageboard_id/:id(/page-:page)(.:format)         thredded/topics#show {:page=>/[1-9]\d*/}
       messageboard_topic_posts POST   /:messageboard_id/:topic_id(.:format)                thredded/posts#create
    new_messageboard_topic_post GET    /:messageboard_id/:topic_id/new(.:format)            thredded/posts#new
   edit_messageboard_topic_post GET    /:messageboard_id/:topic_id/:id/edit(.:format)       thredded/posts#edit
        messageboard_topic_post PATCH  /:messageboard_id/:topic_id/:id(.:format)            thredded/posts#update
                                PUT    /:messageboard_id/:topic_id/:id(.:format)            thredded/posts#update
                                DELETE /:messageboard_id/:topic_id/:id(.:format)            thredded/posts#destroy
                                POST   /:messageboard_id(.:format)                          thredded/topics#create
        edit_messageboard_topic GET    /:messageboard_id/:id/edit(.:format)                 thredded/topics#edit
                                PATCH  /:messageboard_id/:id(.:format)                      thredded/topics#update
                                PUT    /:messageboard_id/:id(.:format)                      thredded/topics#update
                                DELETE /:messageboard_id/:id(.:format)                      thredded/topics#destroy
                  messageboards GET    /                                                    thredded/messageboards#index
                                POST   /                                                    thredded/messageboards#create
                           root GET    /                                                    thredded/messageboards#index

要访问threded控制器的视图上下文,请通过
threded::ApplicationController.renderer
渲染部分


请参阅。

“我可以通过使用链接到threded路径,但是我还需要访问threded控制器中定义的操作。”控制器中的操作通过链接到路径/操作来执行。因此,“是否有任何方法可以访问/community/scope之外的内容?”的答案是肯定的,通过指向该控制器的链接。但听起来您想直接调用控制器方法。据我所知,您不能从外部在控制器内执行独立方法。也许引擎中的名称空间助手可以解决这个问题。
# frozen_string_literal: true
# Thredded configuration

# ==> User Configuration
# The name of the class your app uses for your users.
# By default the engine will use 'User' but if you have another name
# for your user class - change it here.
Thredded.user_class = 'User'

# User name column, used in @mention syntax and should be unique.
# This is the column used to search for users' names if/when someone is @ mentioned.
Thredded.user_name_column = :name

# The path (or URL) you will use to link to your users' profiles.
# When linking to a user, Thredded will use this lambda to spit out
# the path or url to your user. This lambda is evaluated in the view context.
Thredded.user_path = lambda do |user|
  user_path = :"#{Thredded.user_class.name.underscore}_path"
  main_app.respond_to?(user_path) ? main_app.send(user_path, user) : "#{user.to_param}"
end

# This method is used by Thredded controllers and views to fetch the currently signed-in user
Thredded.current_user_method = :"current_#{Thredded.user_class.name.underscore}"

# User avatar URL. rb-gravatar gem is used by default:
Thredded.avatar_url = ->(user) { user.profile_picture.url }

# ==> Permissions Configuration
# By default, thredded uses a simple permission model, where all the users can post to all message boards,
# and admins and moderators are determined by a flag on the users table.

# The name of the moderator flag column on the users table.
Thredded.moderator_column = :admin
# The name of the admin flag column on the users table.
Thredded.admin_column = :admin

# This model can be customized further by overriding a handful of methods on the User model.
# For more information, see app/models/thredded/user_extender.rb.

# ==> Email Configuration
# Email "From:" field will use the following
# Thredded.email_from = 'no-reply@example.com'

# Incoming email will be directed to this host
# Thredded.email_incoming_host = 'example.com'

# Emails going out will prefix the "Subject:" with the following string
# Thredded.email_outgoing_prefix = '[My Forum] '

# Reply to field for email notifications
# Thredded.email_reply_to = -> postable { "#{postable.hash_id}@#{Thredded.email_incoming_host}" }

# ==> View Configuration
# Set the layout for rendering the thredded views.
Thredded.layout = 'thredded/application'

# ==> Error Handling
# By default Thredded just renders a flash alert on errors such as Topic not found, or Login required.
# Below is an example of overriding the default behavior on LoginRequired:
#
# Rails.application.config.to_prepare do
#   Thredded::ApplicationController.module_eval do
#     rescue_from Thredded::Errors::LoginRequired do |exception|
#       @message = exception.message
#       render template: 'sessions/new', status: :forbidden
#     end
#   end
# end
Routes for Thredded::Engine:
                  theme_preview GET    /theme-preview(.:format)                             thredded/theme_previews#show
              new_private_topic GET    /private-topics/new(.:format)                        thredded/private_topics#new
                  private_topic GET    /private-topics/:id(/page-:page)(.:format)           thredded/private_topics#show {:page=>/[1-9]\d*/}
    private_topic_private_posts POST   /private-topics/:private_topic_id(.:format)          thredded/posts#create
 new_private_topic_private_post GET    /private-topics/:private_topic_id/new(.:format)      thredded/posts#new
edit_private_topic_private_post GET    /private-topics/:private_topic_id/:id/edit(.:format) thredded/posts#edit
     private_topic_private_post PATCH  /private-topics/:private_topic_id/:id(.:format)      thredded/posts#update
                                PUT    /private-topics/:private_topic_id/:id(.:format)      thredded/posts#update
                                DELETE /private-topics/:private_topic_id/:id(.:format)      thredded/posts#destroy
                 private_topics GET    /private-topics(.:format)                            thredded/private_topics#index
                                POST   /private-topics(.:format)                            thredded/private_topics#create
             edit_private_topic GET    /private-topics/:id/edit(.:format)                   thredded/private_topics#edit
                                PATCH  /private-topics/:id(.:format)                        thredded/private_topics#update
                                PUT    /private-topics/:id(.:format)                        thredded/private_topics#update
                                DELETE /private-topics/:id(.:format)                        thredded/private_topics#destroy
             autocomplete_users GET    /autocomplete-users(.:format)                        thredded/autocomplete_users#index
           messageboards_search GET    /                                                    thredded/topics#search
            messageboard_search GET    /:messageboard_id(.:format)                          thredded/topics#search
               edit_preferences GET    /preferences/edit(.:format)                          thredded/preferences#edit
                    preferences PATCH  /preferences(.:format)                               thredded/preferences#update
                                PUT    /preferences(.:format)                               thredded/preferences#update
               new_messageboard GET    /messageboards/new(.:format)                         thredded/messageboards#new
  edit_messageboard_preferences GET    /:messageboard_id/preferences/edit(.:format)         thredded/preferences#edit
       messageboard_preferences PATCH  /:messageboard_id/preferences(.:format)              thredded/preferences#update
                                PUT    /:messageboard_id/preferences(.:format)              thredded/preferences#update
         new_messageboard_topic GET    /:messageboard_id/topics/new(.:format)               thredded/topics#new
            messageboard_topics GET    /:messageboard_id(/page-:page)(.:format)             thredded/topics#index {:page=>/[1-9]\d*/}
 categories_messageboard_topics GET    /:messageboard_id/category/:category_id(.:format)    thredded/topics#category
             messageboard_topic GET    /:messageboard_id/:id(/page-:page)(.:format)         thredded/topics#show {:page=>/[1-9]\d*/}
       messageboard_topic_posts POST   /:messageboard_id/:topic_id(.:format)                thredded/posts#create
    new_messageboard_topic_post GET    /:messageboard_id/:topic_id/new(.:format)            thredded/posts#new
   edit_messageboard_topic_post GET    /:messageboard_id/:topic_id/:id/edit(.:format)       thredded/posts#edit
        messageboard_topic_post PATCH  /:messageboard_id/:topic_id/:id(.:format)            thredded/posts#update
                                PUT    /:messageboard_id/:topic_id/:id(.:format)            thredded/posts#update
                                DELETE /:messageboard_id/:topic_id/:id(.:format)            thredded/posts#destroy
                                POST   /:messageboard_id(.:format)                          thredded/topics#create
        edit_messageboard_topic GET    /:messageboard_id/:id/edit(.:format)                 thredded/topics#edit
                                PATCH  /:messageboard_id/:id(.:format)                      thredded/topics#update
                                PUT    /:messageboard_id/:id(.:format)                      thredded/topics#update
                                DELETE /:messageboard_id/:id(.:format)                      thredded/topics#destroy
                  messageboards GET    /                                                    thredded/messageboards#index
                                POST   /                                                    thredded/messageboards#create
                           root GET    /                                                    thredded/messageboards#index