小编Rya*_*igg的帖子

在模型验证失败时使用自定义路径

我刚刚在我的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)

提前致谢.

ruby-on-rails

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

Rails在每次创建/更新请求时都保存IP地址

我想做以下事情:

定义一个before_filterapplication.rb任何地方提取用户的IP地址,并将其存储,最好是在会话.

在我的所有模型中定义两个过滤器,如before_create和before_update,它们将当前用户的IP添加到要存储的对象.

问题:我无法访问session[]既不env[]在一个模型.任何人都可以使用我还不知道的标准解决方案吗?

关心杰森

ip session env ruby-on-rails

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

加载网页以便在Rails中解析

假设,我想从Web到我的应用程序获取一个页面并使用它进行某种解析.我怎么做?我应该从哪里开始?应该是一些插件/宝石吗?解决此类任务的常用做法是什么?

parsing ruby-on-rails html-parsing

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

为什么"git push origin master"未能成为github?

这是我采取的步骤.

  1. 我在github上创建了一个存储库
  2. 在我的windows vista home premium(有msys git 1.7.0.2)上生成了一个rails项目.
  3. git init
  4. 然后我提交了生成的文件
  5. git remote add origin git@github.com:anjanb/Jobs2Go.git
  6. git push origin master

在第5步,我得到以下错误. "许可被拒绝(公钥).致命:远程端意外挂断 "

我依稀记得在创建我的第一个github存储库时遵循的一些sshgen步骤,但我忘记了它是什么.

有人能指出我做错了什么,我需要做些什么.

谢谢,

git

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

无法构建gem native扩展 - 找不到extconf.rb

在尝试安装时

'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

任何提示?谢谢

ruby windows ruby-on-rails

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

Rails设计帮助路由错误没有路由匹配"/ sessions/user"

当我在我的页面上登录时,我自动转到路线: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)

ruby authentication ruby-on-rails devise ruby-on-rails-3

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

在Clap中的参数中采用多个值

我正在使用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)

这只会输出我指定的第一个文件,而不是所有文件。

对于任意数量的参数,如何使它输出所有不同的文件?

rust clap

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

Rails模型counter_cache列初始化

我正在使用rspec进行测试中使用的对象图的测试和hornsby场景.

将计数器缓存列初始化为0值而不是将它们保持为未初始化(nil)是一种好习惯吗?或者我应该在创建这些计数器缓存列的迁移中定义默认值?

ruby-on-rails counter-cache

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

弹出/新窗口+ Redirect_to + Rails

可以从控制器重定向到某个URL并同时打开新窗口中的URL吗?

ruby-on-rails

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

下拉框 - 填充表单中另一个表的数据 - Ruby on Rails

我正在尝试向我正在创建的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岁).

ruby-on-rails

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