小编Joh*_* Wu的帖子

ruby中的gets和gets.chomp是如何工作的?

我了解到,gets创建一个新行并要求用户输入内容,并gets.chomp执行相同的操作,但不会创建新行.gets必须返回一个对象,所以你可以调用一个方法,对吗?如果是这样,让我们​​将该对象命名gets为as tmp,那么你可以调用该chomp方法tmp.但在gets返回之前tmp,它应该在屏幕上打印一个新行.那怎么chomp办?是否创建删除了新行gets

重新解释我的问题的另一种方法是:我打电话时是否执行了以下操作gets.chomp

  1. gets 打印一个新行
  2. gets 回报 tmp
  3. tmp.chomp 删除新行
  4. 用户输入

这是正确的顺序吗?

ruby

42
推荐指数
2
解决办法
8万
查看次数

Rails:在命名空间中放置设计路径后,模型的名称以命名空间为前缀.如何删除它?

我在我的Rails RESTFul API服务中使用devise进行身份验证.Devise使我能够使用[POST] http://domain/usersform_data 创建一个新用户:

[user]password = 123
[user]email = foo@bar.zoo
[user]password_confirmation = 123
Run Code Online (Sandbox Code Playgroud)

然后我放入这样devise_for的命名空间

namespace :api do
  namespace :v1 do
    devise_for :users,
               controllers: {
                   :registrations => 'api/v1/registrations',
                   :sessions => 'api/v1/sessions',
                   :passwords => 'api/v1/passwords'
               }
  end
end
Run Code Online (Sandbox Code Playgroud)

控制器的文件结构如下所示.

.
??? api
?   ??? v1
?       ??? passwords_controller.rb
?       ??? registrations_controller.rb
?       ??? sessions_controller.rb
??? application_controller.rb
Run Code Online (Sandbox Code Playgroud)

在我做了这个更改之后,我应该[POST] http://domain/api/v1/users用来创建一个新用户,但是使用下面的form_data

[api_v1_user]password = 123
[api_v1_user]email = foo@bar.zoo
[api_v1_user]password_confirmation = 123
Run Code Online (Sandbox Code Playgroud)

我不希望模型名称(即用户)以api_v1_为前缀.因为如果有一天我将我的api版本切换到v2,那么我必须更新所有客户端API调用!

有任何想法吗?

ruby ruby-on-rails devise

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

Struts + Hibernate:@SessionTarget无效

我正在使用如下所示在我的DAO类中struts2-fullhibernatecore-plugin-2.2.2-GA.jar注入一个session:

public class UserDAO {
    @SessionTarget
    Session session;

    @TransactionTarget
    Transaction transaction;

    public List<User> getUsers() {
        return session.createQuery("from user").list();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我得到了

java.lang.NullPointerException
  com.wudi.DAO.UserDAO.getUsers(UserDAO.java:28)
  com.wudi.action.UserListAction.execute(UserListAction.java:24)
  sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  java.lang.reflect.Method.invoke(Method.java:606)
  ...
Run Code Online (Sandbox Code Playgroud)

根据调试输出,session并且transactionUserDAOARE null.

一些文件供参考:

User.java:

@Entity
@Table(name = "user")
public class User implements Serializable {

    @Id
    @GeneratedValue
    private int id;

    @Column
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id; …
Run Code Online (Sandbox Code Playgroud)

java mysql dao hibernate struts2

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

如何获取容器内列表项的前导点

抱歉,如果这是重复的条目,我尽了最大努力来解决它,但失败了。
所以我在下面有标记,它是元素ul内的元素nav

<nav>
  <ul>
    <li>A</li>
    <li>B</li>
    <li>C</li>
    <li>D</li>
  </ul>
</nav>
Run Code Online (Sandbox Code Playgroud)

此代码部分的样式是

nav {
  width: 150px;
  float: right;
}
Run Code Online (Sandbox Code Playgroud)

当我打开 Chrome 的开发者工具时,我注意到所有列表项的点都在框外nav。该框是屏幕截图中的阴影区域。无论如何,我可以把所有这些点都放在盒子里吗?在此输入图像描述

html css

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

标签 统计

ruby ×2

css ×1

dao ×1

devise ×1

hibernate ×1

html ×1

java ×1

mysql ×1

ruby-on-rails ×1

struts2 ×1