我刚刚在我的Rails应用程序中添加了一个联系表单,以便站点访问者可以向我发送消息.该应用程序有一个Message资源,我已经定义了这个自定义路由,使URL更好,更明显:
map.contact '/contact', :controller => 'messages', :action => 'new'
Run Code Online (Sandbox Code Playgroud)
如何/contact在模型验证失败时保留URL ?目前,URL /messages在验证失败时更改为.
这是create我的方法messages_controller:
def create
@message = Message.new(params[:message])
if @message.save
flash[:notice] = 'Thanks for your message etc...'
redirect_to contact_path
else
render 'new', :layout => 'contact'
end
end
Run Code Online (Sandbox Code Playgroud)
提前致谢.
我想做以下事情:
定义一个before_filter在application.rb任何地方提取用户的IP地址,并将其存储,最好是在会话.
在我的所有模型中定义两个过滤器,如before_create和before_update,它们将当前用户的IP添加到要存储的对象.
问题:我无法访问session[]既不env[]在一个模型.任何人都可以使用我还不知道的标准解决方案吗?
关心杰森
假设,我想从Web到我的应用程序获取一个页面并使用它进行某种解析.我怎么做?我应该从哪里开始?应该是一些插件/宝石吗?解决此类任务的常用做法是什么?
这是我采取的步骤.
在第5步,我得到以下错误. "许可被拒绝(公钥).致命:远程端意外挂断 "
我依稀记得在创建我的第一个github存储库时遵循的一些sshgen步骤,但我忘记了它是什么.
有人能指出我做错了什么,我需要做些什么.
谢谢,
在尝试安装时
'bcrypt-ruby', :lib => 'bcrypt'
Run Code Online (Sandbox Code Playgroud)
和
'hpricot'
Run Code Online (Sandbox Code Playgroud)
我在两种情况下都得到了这个(使用Windows XP)
C:/Ruby/bin/ruby.exe: No such file or directory -- extconf.rb (LoadError)
Run Code Online (Sandbox Code Playgroud)
我从这里安装http://rubyinstaller.org/downloads/ Rb 1.8.6,包括devkit
任何提示?谢谢
当我在我的页面上登录时,我自动转到路线:http:// localhost:3000/sessions/user
我收到这个错误:
Routing Error
No route matches "/sessions/user"
Run Code Online (Sandbox Code Playgroud)
我在users文件夹中创建了一个名为sessions_controller.rb的控制器,它是:
class Users::SessionsController < Devise::SessionsController
def new
redirect_to root_url, :notice => "You have been logged out."
end
def create
user = User.authenticate(params[:login], params[:encrypted_password])
if user
session[:user_id] = user.id
redirect_to root_url, :notice => "Logged in successfully."
else
flash.now[:alert] = "Invalid login or password."
render :action => 'new'
end
end
def destroy
session[:user_id] = nil
redirect_to root_url, :notice => "You have been logged out."
end
end
Run Code Online (Sandbox Code Playgroud)
我的路线档案:
Densidste::Application.routes.draw do
match 'user/edit' => …Run Code Online (Sandbox Code Playgroud) 我正在使用Clap,并且正在尝试使它成为一个子命令可以为参数使用多个值。我需要的界面是:
just use repo [files]
Run Code Online (Sandbox Code Playgroud)
一个例子:
just use radar/dot-files gitaliases ryan-aliases
Run Code Online (Sandbox Code Playgroud)
repo这里的参数将是字符串“ radar / dot-files”,files参数将是的向量["gitaliases", "ryan-aliases"]。
这是我要使用的代码:
let matches = App::new("just")
.version("v1.0-beta")
.subcommand(
SubCommand::with_name("use")
.arg(Arg::with_name("repo").required(true))
.arg(
Arg::with_name("files")
.required(true)
.multiple(true)
.number_of_values(1),
),
)
.get_matches();
if let Some(matches) = matches.subcommand_matches("use") {
println!("{:?}", matches.value_of("files").unwrap())
}
Run Code Online (Sandbox Code Playgroud)
这只会输出我指定的第一个文件,而不是所有文件。
对于任意数量的参数,如何使它输出所有不同的文件?
我正在使用rspec进行测试中使用的对象图的测试和hornsby场景.
将计数器缓存列初始化为0值而不是将它们保持为未初始化(nil)是一种好习惯吗?或者我应该在创建这些计数器缓存列的迁移中定义默认值?
我正在尝试向我正在创建的CRM添加注释功能.我正在使用经过身份验证的环境,用户可以在其中管理其潜在客户.例如,我注册,我登录,我可以进入潜在客户并查看它们.所以...我已经创建了一个潜在客户和用户表,让他们一切都很好.我现在正试图让用户能够记录并将其"附加"给潜在客户.所以......我创建了一个带有列,注释和前景的笔记表.用户可以从他们提取此表单的任何位置记录,我的目标是在下拉框中提供他们的客户名称以附加到表单.到目前为止,我已在前景控制器中创建了一个对象,其中包含以下内容
def index
@myprospects = current_user.prospects.find(params[:id])
end
Run Code Online (Sandbox Code Playgroud)
我正在努力在视图/ notes/new.html.erb文件中创建下拉列表的下一步.表单如下所示:
<h1>New note</h1><hr/>
<% form_for(@note) do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :note %><br />
<%= f.text_area :note %>
</p>
<p>
<%= f.label :prospect %><br />
<%= f.text_field :prospect %>
</p>
<p>
<%= f.submit 'Create' %>
</p>
<% end %>
<%= link_to 'Back', notes_path %>
Run Code Online (Sandbox Code Playgroud)
我如何映射
<p>
<%= f.label :prospect %><br />
<%= f.text_field :prospect %>
</p>
Run Code Online (Sandbox Code Playgroud)
字段显示我想要的数据?我是三天进入轨道所以请跟我说话,就像我是一个10岁(一个不知道铁轨的10岁).