我正在尝试在 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) 我已经将 Rails 4 应用程序设置为与 Bootstrap 3 一起运行并设计。
我已经自定义了设备注册和登录视图,以便它们现在位于引导模式内。但是,尽管使用共享项目(其中包括“不是会员?在此处注册”链接),但它不会出现在登录模式中。
当我将该代码直接复制并粘贴到模式中时,注册模式将显示在登录模式中。按钮不起作用,而且看起来很糟糕。
有谁知道如何创建一个链接,例如“不是会员?在此处注册”,这将导致登录模式关闭并打开注册模式?
谢谢。
我正在使用 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。
我正在尝试遵循有关使用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) 我有一个表格。表单中的字段之一是字段数组 - 用于可重复字段。除此字段外,所有其他表单字段都存储在单个集合(父集合)中。
父集合有一个用于字段数组的数组,该数组保存每个重复条目的值,存储在子集合(子集合)中。
当我编写 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) 我正在尝试弄清楚如何将聊天小部件从 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 吗?
我试图弄清楚如何将 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) 我正在使用简单的形式(带引导程序)制作一个 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) 我正在试图弄清楚如何在我的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?
根据此更新,VS Code 应该在>键入结束标签时自动关闭标签。我的似乎不会这样做(我使用的是 v1.19)。
我还尝试安装 Jun Han 制作的软件包,它也应该执行此操作,但它不起作用。有什么技巧可以让这个功能发挥作用吗?
启用的扩展有:
javascript ×3
formik ×2
next.js ×2
reactjs ×2
actionmailer ×1
devise ×1
ecmascript-6 ×1
favicon ×1
firebase ×1
forms ×1
import ×1
jquery ×1
jsx ×1
namespaces ×1
ruby ×1
simple-form ×1
tawk.to ×1