如果不使用任何宝石,我如何在rails中执行此操作?
主要类别
子类别
子类别
子类别
主要类别
子类别
子类别
子类别
主要类别
子类别
子类别
子类别
我有一个由|组成的表 id | level1 | level2 |
1级是主要类别,2级是子类别
我想在上面的视图中显示它.
在互联网上四处看看之后,每个人似乎都建议使用类似行为的宝石,但我想避免使用它们,因为我对rails很新,我想了解如何做事而不是转向宝石.
你的帮助很大
模型:
class Category < ActiveRecord::Base
belongs_to :catalogue
has_many :subcategories, :class_name => "Category", :foreign_key => "parent_id", :dependent => :destroy
belongs_to :parent_category, :class_name => "Category"
end
Run Code Online (Sandbox Code Playgroud)
控制器:
class CataloguesController < ApplicationController
layout 'main'
def index
@cats = Catalogue.all
end
def categories
@cat = Catalogue.find(params[:id])
end
end
Run Code Online (Sandbox Code Playgroud)
视图:
<ul class="unstyled-list">
<% @cat.categories.order([:level1]).each do |cat|%>
<li><%= cat.level1 %></li>
<li><%= cat.level2 …Run Code Online (Sandbox Code Playgroud) 我正在尝试做一些文本显示当文本输入在焦点上,但最近的(); 方法似乎不起作用.
我为你做了一个JS小提琴.
这里也是代码.
JS
$(document).ready(function(){
$('.validation-error').hide();
$('.name-input').on("focus", function(){
$(this).closest('.validation-error').show();
});
});
Run Code Online (Sandbox Code Playgroud)
HTML
<fieldset>
<legend>User Details</legend>
<table>
<tr>
<td width="200">
<label for="user"><span class="required-fields">*</span> User Name</label>
</td>
<td>
<input type="text" id="user" class="name-input">
</td>
<td>
<p class="validation-error">This field cannot be blank or less than 2 characters.</p>
</td>
</tr>
<tr>
<td>
<label for="job_title"><span class="required-fields">*</span> Job Title</label></td>
<td>
<input type="text" id="job_title" class="name-input">
</td>
<td>
<p class="validation-error">This field cannot be blank or less than 2 characters.</p>
</td>
</tr>
<tr>
<td>
<label for="full_name">* Full …Run Code Online (Sandbox Code Playgroud) 我很新的反应,我试图从rails api引入数据,但我收到错误 TypeError: Cannot read property 'map' of undefined
如果我使用react dev工具,我可以看到状态,如果我在控制台中乱用它,我可以看到联系人$r.state.contacts可以帮助我做错了吗?我的组件看起来像这样:
import React from 'react';
import Contact from './Contact';
class ContactsList extends React.Component {
constructor(props) {
super(props)
this.state = {}
}
componentDidMount() {
return fetch('http://localhost:3000/contacts')
.then(response => response.json())
.then(response => {
this.setState({
contacts: response.contacts
})
})
.catch(error => {
console.error(error)
})
}
render(){
return(
<ul>
{this.state.contacts.map(contact => { return <Contact contact{contact} />})}
</ul>
)
}
}
export default ContactsList;
Run Code Online (Sandbox Code Playgroud) 我正在设计一个网站,我希望顶部成为视频的高度,就像这个 网站我怎么做那样的事情.无论我使用什么显示器,底部总是坐在我的屏幕底部?
谢谢
我正在尝试获取一个网址来获取标头并确保它返回内容类型,以便我可以检查以确保它包含“图像”
到目前为止,我只是循环访问数据库以获取图像 url,并将其传递到 fetch 中以获取内容类型。
到目前为止,然后出现套接字挂起错误。
这是我正在调用的函数
const getImage = async (url) => {
try {
const res = await fetch(encodeURI(url));
console.log(res.headers.get("content-type"));
} catch (err) {
console.log(err);
}
};
Run Code Online (Sandbox Code Playgroud)
然而,过了这么长时间,它开始出错,并且 node-fetch 产生以下错误:
FetchError: request to http://www.fakeurl/image.jpg failed, reason: socket hang up
at ClientRequest.<anonymous> (/home/user/code/url-check/node_modules/node-fetch/lib/index.js:1455:11)
at ClientRequest.emit (events.js:321:20)
at Socket.socketOnEnd (_http_client.js:463:9)
at Socket.emit (events.js:333:22)
at endReadableNT (_stream_readable.js:1201:12)
at processTicksAndRejections (internal/process/task_queues.js:84:21) {
Run Code Online (Sandbox Code Playgroud)
我不确定我做错了什么,我猜测服务器一次收到太多请求,但不知道如何减慢速度或将其排队以重试
编辑
这是调用上面函数的数据库循环:
connection.query(sql, (error, results, fields) => {
if (error) {
return console.error(error.message);
}
for (let i = 0; …Run Code Online (Sandbox Code Playgroud) 我已经在Gravatars上完成了这个railscast,我现在在我的应用程序帮助器中有下面的帮助器方法.
module ApplicationHelper
def avatar_url(user)
gravatar_id = Digest::MD5.hexdigest(user.email.downcase)
"http://gravatar.com/avatar/#{gravatar_id}.png?s=200"
end
end
Run Code Online (Sandbox Code Playgroud)
在我看来,我有这个
<%= image_tag avatar_url(user) %>
Run Code Online (Sandbox Code Playgroud)
我如何修改帮助器,以便它接受一个大小选项,将s = 200更改为指定的大小?
谢谢
我试图通过使用CSV库解析CSV文件来获取一系列哈希值.
我目前有这种方法有效:
def rows
rows = []
CSV.foreach(@csv_file.path, headers: true) do |row|
rows << row.to_hash
end
rows
end
Run Code Online (Sandbox Code Playgroud)
但是当我把它改成这个时,我得到了stream closed错误.
def rows
CSV.foreach(@csv_file.path, headers: true).map(&:to_hash)
end
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在尝试节点身份验证,我已设法将用户名和散列密码存储到我的数据库中,但我想返回 json 而不带散列密码。
我在发回 JSON 之前删除了密码密钥,但密码仍然显示在返回的结果中。
router.post("/signup", async (req, res, next) => {
const user = await User.exists({ username: req.body.username });
if (user) {
const error = new Error("Username already exists");
next(error);
} else {
const newUser = new User({
username: req.body.username,
password: req.body.password,
});
try {
const result = await newUser.save();
delete result.password;
res.json(result);
} catch (err) {
res.json(err.errors);
}
}
});
Run Code Online (Sandbox Code Playgroud)
用户模型有一个预钩子,可以在保存之前对密码进行哈希处理:
userSchema.pre("save", async function save(next) {
const user = this;
if (!user.isModified("password")) return next();
try {
user.password …Run Code Online (Sandbox Code Playgroud)