小编Oll*_*619的帖子

类别和子类别模型轨道

如果不使用任何宝石,我如何在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)

model ruby-on-rails categories ruby-on-rails-3.2

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

jQuery nearest(); 不工作

我正在尝试做一些文本显示当文本输入在焦点上,但最近的(); 方法似乎不起作用.

我为你做了一个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)

jquery traversal closest

16
推荐指数
2
解决办法
4万
查看次数

React无法读取undefined的属性映射

我很新的反应,我试图从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)

javascript ecmascript-6 reactjs fetch-api

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

使div成为视口的高度

我正在设计一个网站,我希望顶部成为视频的高度,就像这个 网站我怎么做那样的事情.无论我使用什么显示器,底部总是坐在我的屏幕底部?

谢谢

html css html5 css3

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

使用 node-fetch 时套接字不断挂起

我正在尝试获取一个网址来获取标头并确保它返回内容类型,以便我可以检查以确保它包含“图像”

到目前为止,我只是循环访问数据库以获取图像 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)

javascript node.js ecmascript-2016

5
推荐指数
1
解决办法
4024
查看次数

Rails Gravatar Helper方法

我已经在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更改为指定的大小?

谢谢

gravatar helper ruby-on-rails-3.2

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

使用CSV库时流关闭IO错误

我试图通过使用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)

谢谢

ruby csv ruby-on-rails ruby-on-rails-4

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

从对象中删除密钥但仍显示响应

我正在尝试节点身份验证,我已设法将用户名和散列密码存储到我的数据库中,但我想返回 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)

mongoose node.js express ecmascript-2016

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