如何将Toastr-rails gem添加到Rails 6项目中?

我正在尝试将烤面包宝石添加到我的Rails 6项目中。我还安装了devise gem。

我不了解webpacker,也不了解如何使toastr-rails webpacker友好。

我已经阅读了所有文档。不要叫我阅读文档。

这是我尝试过的

yarn add toastr

然后在我的asset / packs / application.js文件中添加

@import 'toastr'

我在我的asset / stylesheets / application.scss文件中添加了

*= require_toastr

最后,我的layouts / application.html.erb具有此代码

<!DOCTYPE html>
<html>
 <head>
 </head>
 <body>
  <% unless flash.empty? %>
    <script type="text/javascript">
        <% flash.each do |f| %>
        <% type = f[0].to_s %>
        toastr['<%= type %>']('<%= f[1] %>');
        <% end %>
    </script>
  <% end %>
  <%= yield %>
 </body>
</html>```


I don't get the toast notifications. 
I don't get any notifications. 
But this code works on my Rails 4 project.
baichichangchun 回答:如何将Toastr-rails gem添加到Rails 6项目中?

首先,您需要在项目中添加烤面包机

使用纱线

from PyQt5 import QtCore,QtGui,QtWidgets

class Ui_ImportPage(object):
    def setupUi(self,MainWindow):
        MainWindow.setObjectName("Import")
        MainWindow.resize(800,600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
        self.verticalLayout.setObjectName("verticalLayout")
        self.get = QtWidgets.QPushButton('Send data to MainWindow',self.centralwidget)
        self.verticalLayout.addWidget(self.get)
        self.line = QtWidgets.QLineEdit(self.centralwidget)
        self.line.setObjectName("open")
        self.line.setPlaceholderText('Type here what you want to send to MainWindow')
        self.verticalLayout.addWidget(self.line)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0,800,26))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self,MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow","Import"))

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_ImportPage()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

使用npm

Because every version of simple_slider depends on cached_network_image ^0.4.1 and first_flutter_app depends on cached_network_image ^1.1.3,simple_slider is forbidden.

So,because first_flutter_app depends on simple_slider ^0.0.2,version solving failed.
pub get failed (1)

之后,您可以在node_modules中看到文件toastr(node_modules / toastr),其中包含toastr.scss文件和toastr.js文件,让我们将其导入

app / assets / application.scss

yarn add toastr

app / javascripts / packs / application.js

npm -i toastr

@import "toastr/toastr";
,

如果要在toastr-rails gem中添加toastr,请使用资产管道而不是webpack。

以下是将toastrwebpack添加的步骤。

  1. 添加带有纱线的Toastr js

    yarn add toastr
    
  2. app / javascript / packs / application.js 中需要烤面包机。我将其添加到全局以避免错误

    global.toastr = require("toastr")
    
  3. 创建 app / javascript / stylesheets / application.scss 文件以导入自定义或库CSS文件

  4. app / javascript / stylesheets / application.scss

    中导入Toastr CSS
    @import 'toastr'
    
  5. app / javascript / stylesheets / application.scss 文件导入 app / javascript / packs / application.js

    import "../stylesheets/application"
    
  6. 我为flas消息编写了一个辅助方法。将此方法添加到 application_helper.rb 或其他帮助器

    def toastr_flash
      flash.each_with_object([]) do |(type,message),flash_messages|
        type = 'success' if type == 'notice'
        type = 'error' if type == 'alert'
        text = "<script>toastr.#{type}('#{message}','',{ closeButton: true,progressBar: true })</script>"
        flash_messages << text.html_safe if message
      end.join("\n").html_safe
    end
    
  7. toastr_flash方法添加到 layouts / application.html.erb 或任何需要的地方

    <!DOCTYPE html>
    <html>
      <head>
      </head>
      <body>
        <%= yield %>
        <%= toastr_flash %>
      </body>
    </html>
    
本文链接:https://www.f2er.com/3133776.html

大家都在问