我了解到,gets创建一个新行并要求用户输入内容,并gets.chomp执行相同的操作,但不会创建新行.gets必须返回一个对象,所以你可以调用一个方法,对吗?如果是这样,让我们将该对象命名gets为as tmp,那么你可以调用该chomp方法tmp.但在gets返回之前tmp,它应该在屏幕上打印一个新行.那怎么chomp办?是否在创建后删除了新行?gets
重新解释我的问题的另一种方法是:我打电话时是否执行了以下操作gets.chomp?
gets 打印一个新行gets 回报 tmptmp.chomp 删除新行这是正确的顺序吗?
我在我的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调用!
有任何想法吗?
我正在使用如下所示在我的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并且transaction在UserDAOARE 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) 抱歉,如果这是重复的条目,我尽了最大努力来解决它,但失败了。
所以我在下面有标记,它是元素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。该框是屏幕截图中的阴影区域。无论如何,我可以把所有这些点都放在盒子里吗?