小编Mel*_*Mel的帖子

Rails 5 - 带有路由的嵌套控制器

我正在尝试在 Rails 5 中制作一个应用程序。

为了保持文件结构整洁,我试图在我的控制器目录中创建文件夹,我可以用它来对类似的资源进行分组。

例如,我有:

 app/controllers/users/users_controller.rb
Run Code Online (Sandbox Code Playgroud)

然后我可以让我的会话控制器嵌套在控制器/用户目录中,以便与用户相关的所有资源都分组在用户文件夹下。

不过,我对如何处理我的路由文件感到困惑。

当我耙路线时,我可以看到:

 users#index {:controllers=>{:users=>"users/users"}}
                                 POST     /users(.:format)                        users#create {:controllers=>{:users=>"users/users"}}
                        new_user GET      /users/new(.:format)                    users#new {:controllers=>{:users=>"users/users"}}
                       edit_user GET      /users/:id/edit(.:format)               users#edit {:controllers=>{:users=>"users/users"}}
                            user GET      /users/:id(.:format)                    users#show {:controllers=>{:users=>"users/users"}}
                                 PATCH    /users/:id(.:format)                    users#update {:controllers=>{:users=>"users/users"}}
                                 PUT      /users/:id(.:format)                    users#update {:controllers=>{:users=>"users/users"}}
                                 DELETE   /users/:id(.:format)                    users#destroy {:controllers=>{:users=>"users/users"}}
Run Code Online (Sandbox Code Playgroud)

在我的路由文件中,我尝试了一些事情(如下所示) - 它们都不起作用:

Rails.application.routes.draw do
  devise_for :users,
             :controllers => {
                :sessions => 'users/sessions',
                :registrations => "users/registrations",
                :omniauth_callbacks => 'users/omniauth_callbacks'
              }

  resources :identities, 
    :controllers => {
        :identities => 'users/identities'
    }


  resources :users do
  scope module: :users do
    resources …
Run Code Online (Sandbox Code Playgroud)

ruby namespaces ruby-on-rails nested-routes

4
推荐指数
1
解决办法
6966
查看次数

在 Bootstrap 模态之间切换

我已经将 Rails 4 应用程序设置为与 Bootstrap 3 一起运行并设计。

我已经自定义了设备注册和登录视图,以便它们现在位于引导模式内。但是,尽管使用共享项目(其中包括“不是会员?在此处注册”链接),但它不会出现在登录模式中。

当我将该代码直接复制并粘贴到模式中时,注册模式将显示在登录模式中。按钮不起作用,而且看起来很糟糕。

有谁知道如何创建一个链接,例如“不是会员?在此处注册”,这将导致登录模式关闭并打开注册模式?

谢谢。

jquery ruby-on-rails devise twitter-bootstrap

3
推荐指数
1
解决办法
1万
查看次数

Rails - AdminMailer - 设置发件人姓名

我正在使用 Rails 4 制作一个网络应用程序。

我设置了一个邮件程序来向新用户发送欢迎邮件。

我想将发件人姓名的外观从电子邮件地址更改为“欢迎使用 CF”。

在哪里设置发件人的姓名?

class WelcomeMail < ActionMailer::Base
  self.delivery_method = :smtp
  self.smtp_settings = {
    user_name:            ENV['GPROD_WELCOME'],
    password:             ENV['GPwPROD_WELCOME'],
    port:                 587,
    domain:               'cr.com',
    address:              'smtp.gmail.com',
    authentication:       'plain',
    enable_starttls_auto: true
  }


def welcome_mail(user)
  @user = user
  mail(to: user.email, from: "angus@cr.com", subject: "Welcome to Cr, #{user.first_name}")
end


end
Run Code Online (Sandbox Code Playgroud)

更改后,我希望 angus@cr.com 显示为 Welcome to CR。

ruby-on-rails actionmailer

3
推荐指数
1
解决办法
1656
查看次数

React - Formik - 字段数组 - 实现可重复的表单字段

我正在尝试遵循有关使用FieldArrays的 Formik 文档,以便我可以将可重复的表单元素添加到我的表单中。

我还看到了这篇Medium 帖子给出了一个例子。

我学习很慢,无法将文档和实现之间的点联系起来。

我想在我的主表单中有一个按钮,上面写着:“添加数据请求”。

如果选择该按钮,则会显示设置数据配置文件的嵌套表单,以及“添加另一个数据请求”和“删除”按钮。

我已经在我的应用程序的另一个组件中创建了嵌套表单,但我正在努力弄清楚如何使用媒体帖子中的示例来合并嵌套表单(作为可重复元素 - 即有人可能需要 5 个数据请求)。

有没有关于如何实现这一点的例子?

在我的代码中,我基本上遵循了medium post,但尝试链接索引内的数据请求表单组件

<button 
      type="button"
      onClick={() => arrayHelpers.insert(index, <DataRequestForm />)}>
      Add a data request
</button>   
Run Code Online (Sandbox Code Playgroud)

这显然是不正确的,但我不知道如何做到这一点。

根据 Nithin 的回答,我尝试修改嵌入的表单,以便我可以使用 react-select,如下所示,但是我收到一个错误消息:

类型错误:无法读取未定义的属性“值”

import React from "react";
import { Formik, Form, Field, FieldArray, ErrorMessage, withFormik } from "formik";
import Select from "react-select";


import {
  Button,
  Col,
  FormControl,
  FormGroup,
  FormLabel,
  InputGroup,
  Table,
  Row,
  Container
} from "react-bootstrap";

const initialValues = {
  dataType: "",
  title: "",
  description: …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs formik

3
推荐指数
1
解决办法
2453
查看次数

Firebase:如何将表单数据提交到不同的集合?

我有一个表格。表单中的字段之一是字段数组 - 用于可重复字段。除此字段外,所有其他表单字段都存储在单个集合(父集合)中。

父集合有一个用于字段数组的数组,该数组保存每个重复条目的值,存储在子集合(子集合)中。

当我编写 firestore 提交时,我试图将要提交给父集合的字段与要提交给子集合的字段分开。

我的尝试如下。

<Formik
                  initialValues={{ term: "",    category: [],  relatedTerms: [],  }}
                  
                  onSubmit={(values, { setSubmitting }) => {
                     setSubmitting(true);
                     firestore.collection("glossary").doc().set({
                      term: values.term,
                      category: values.category,
                      createdAt: firebase.firestore.FieldValue.serverTimestamp()
                      }),
                      firestore.collection("glossary").doc().collection('relatedTerms').doc().set({
                        dataType: values.dataType,
                        title: values.Title,
                        description: values.description,
                        
                      })
                    .then(() => {
                      setSubmitionCompleted(true);
                    });
                  }}
  
Run Code Online (Sandbox Code Playgroud)

这会产生一个错误,指出:

第 120:22 行:期望赋值或函数调用,却看到一个表达式 no-unused-

另外,如何在子集合的提交处理程序中知道父集合的文档引用?

我看过这篇文章,它试图在 2 个集合中使用相同的数据(同样关注查找 ID)。

我也看过这个博客,它展示了如何在子集合中使用“输入”作为参考,并且似乎有一种方法可以将它们附加到文档 ID - 但该博客没有显示输入是如何定义的。我看不出如何应用该示例。

作为参考,下面列出了带有可重复表单字段数组(在单独的表单中)的主表单。

主要形式

import React, { useState } from "react";
import ReactDOM from "react-dom";
import {render} from …
Run Code Online (Sandbox Code Playgroud)

javascript firebase google-cloud-firestore formik

3
推荐指数
1
解决办法
663
查看次数

如何将 Tawk 聊天小部件脚本添加到 nextjs React 应用程序

我正在尝试弄清楚如何将聊天小部件从 Tawk 添加到 next.js 反应应用程序。

在我的 _app.js 中,我添加了脚本导入标签并尝试按如下方式设置小部件:

import Script from 'next/script'

      {/* <!--Start of Tawk.to Script--> */}
      <Script id="tawk" strategy="lazyOnload">
        dangerouslySetInnerHTML={{
            __html: `
            
            var Tawk_API=Tawk_API||{}, Tawk_LoadStart=new Date();
            (function(){
            var s1=document.createElement("script"),s0=document.getElementsByTagName("script")[0];
            s1.async=true;
            s1.src='https://embed.tawk.to/[]/[]';
            s1.charset='UTF-8';
            s1.setAttribute('crossorigin','*');
            s0.parentNode.insertBefore(s1,s0);
            })();
           
            `,
        }}
      </Script>
Run Code Online (Sandbox Code Playgroud)

当我尝试这样做时,我收到一条错误消息:

未处理的运行时错误 SyntaxError:意外的标识符

调用堆栈 loadScript ../../node_modules/next/dist/client/script.js (148:18) eval ../../node_modules/next/dist/client/script.js (167:62)

我联系了 tawk 开发支持团队,他们承认 React 存在问题,并建议已使用新版本 2.0.1 推送修复程序,链接如下: https://www.npmjs.com/package/@tawk.to/ tawk 信使反应

当我在 _app.tsx 和 _document.tsx 中尝试时,该包出现了 10 多个错误。

有谁知道如何在 next.js React 应用程序中使用 tawk 吗?

javascript next.js tawk.to

3
推荐指数
1
解决办法
2374
查看次数

如何将网站图标添加到 nextjs 应用程序结构中?- 可能存在水分问题

我试图弄清楚如何将 favicon 文件添加到 next.js 应用程序(使用 React 18)。

我制作了一个 _document 页面,其 head 标签如下:

    import * as React from "react"
    // import {createRoot} from 'react-dom/client'
    import { ColorModeScript } from "@chakra-ui/react"
    import Document, { Head, Html, Main, NextScript } from "next/document"
    import Favicon from "../components/Favicon"
    
    export default class AppDocument extends Document {
      static getInitialProps(ctx: any) {
        return Document.getInitialProps(ctx)
      }
    
      render() {
        return (
          <Html lang="en">
            <Head>
              <meta name="theme-color" key="theme-color" content="#000000" />
              <meta name="description" content="name" key="description" />
              <meta property="og:title" content="title goes here" key="title" …
Run Code Online (Sandbox Code Playgroud)

favicon next.js

3
推荐指数
1
解决办法
7082
查看次数

Rails - 简单形式 - 布尔属性不接受 false/无单选按钮选择

我正在使用简单的形式(带引导程序)制作一个 rails 应用程序。

我的表格中有这个问题:

<%= f.input :ethics, as: :radio_buttons, label: 'Is an ethics review relevant?' %>
Run Code Online (Sandbox Code Playgroud)

道德属性是我表中的一个布尔值。

该表单呈现为是/否的单选按钮。

默认显示为否 - 但如果这是我想给出的答案,我会被卡住,因为我无法提交表单。我收到一个错误,提示需要一个答案。

为什么简单形式不承认 false 作为布尔答案?

日志显示:

Processing by ProjectsController#create as HTML
  Parameters: {"utf8"=>"?", "authenticity_token"=>"", "project"=>{"title"=>"asdfsdf ", "byline"=>"", "description"=>"asdfsdf ", "problem"=>"", "solution"=>"", "remark"=>"",  "ethics"=>"false", 
Run Code Online (Sandbox Code Playgroud)

forms ruby-on-rails simple-form

2
推荐指数
1
解决办法
1599
查看次数

导入4个文件夹深度的文件

我正在试图弄清楚如何在我的src/assets文件夹中导入文件.该文件名为Current.jpg.

我想要使​​用该图像的文件位于src/components/footer/overview文件夹中.

对我来说,这意味着我应该能够写:

import Current from '..../assets/Current.jpg';
Run Code Online (Sandbox Code Playgroud)

这意味着将4个文件夹级别升级到src,然后升级到资源,然后升级到名为Current.jpg的文件.

我一直收到错误,说路径不正确.

你如何遍历4个文件夹层?有没有一个技巧,你需要能够超过2?

import jsx ecmascript-6 reactjs

2
推荐指数
1
解决办法
913
查看次数

自动关闭 HTML 标签未触发

根据此更新,VS Code 应该在>键入结束标签时自动关闭标签。我的似乎不会这样做(我使用的是 v1.19)。

我还尝试安装 Jun Han 制作的软件包,它也应该执行此操作,但它不起作用。有什么技巧可以让这个功能发挥作用吗?

启用的扩展有:

在此输入图像描述

visual-studio-code

2
推荐指数
1
解决办法
6136
查看次数