小编use*_*183的帖子

使用反射设置私有字段值

我有2个班级:FatherChild

public class Father implements Serializable, JSONInterface {

    private String a_field;

    //setter and getter here

}

public class Child extends Father {
    //empty class
}
Run Code Online (Sandbox Code Playgroud)

有了反射,我想a_fieldChild课堂上设置:

Class<?> clazz = Class.forName("Child");
Object cc = clazz.newInstance();

Field f1 = cc.getClass().getField("a_field");
f1.set(cc, "reflecting on life");
String str1 = (String) f1.get(cc.getClass());
System.out.println("field: " + str1);
Run Code Online (Sandbox Code Playgroud)

但我有一个例外:

线程"main"中的异常java.lang.NoSuchFieldException:a_field

但如果我尝试:

Child child = new Child();
child.setA_field("123");
Run Code Online (Sandbox Code Playgroud)

有用.

使用setter方法我有同样的问题:

method = cc.getClass().getMethod("setA_field");
method.invoke(cc, new Object[] { "aaaaaaaaaaaaaa" });
Run Code Online (Sandbox Code Playgroud)

java reflection

46
推荐指数
4
解决办法
6万
查看次数

rails 4用新的params重定向

是否可以使用查询字符串中的新参数重定向回引用URL?

这样的事情:

redirect_to :back, custom_param='foo'
Run Code Online (Sandbox Code Playgroud)

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

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

rails用锚点渲染动作

我有一个带有simple_form gem的表单.如果我使用锚标记对浏览器中的网址进行数字处理,则可以:

localhost:3000/contacts/#new_contact #show me the correct form in the page
Run Code Online (Sandbox Code Playgroud)

这是我的控制器:

class ContactsController < ApplicationController

  def index
    @message = Contact.new()
  end

  def create

    @message = Contact.new(msg_params)
    @message.request = request
    if @message.deliver
      redirect_to contacts_path , flash: { success: 'Ok' }
    else
      render action: :index #how can i render the new_contact anchor??
    end

  rescue   ScriptError
    redirect_to contacts_path , flash: { error: 'spam' }
  end

  private
  def msg_params
    params.require(:contact).permit(:name,:email,:message,:spam)
  end
end
Run Code Online (Sandbox Code Playgroud)

这是我的表格:

<%= simple_form_for @message, defaults: { label: false} do |f| %> …
Run Code Online (Sandbox Code Playgroud)

anchor render simple-form ruby-on-rails-4

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

Ruby on Rails 4 javascript未执行

我有一个自定义js文件app/assets/javascripts.这是js文件:

//app/assets/javascripts/contacts.js
//$(document).ready(function() { //I've already tried with this method

$(window).load(function() {
    alert("foo bar")
});
Run Code Online (Sandbox Code Playgroud)

我需要contacts.js文件中的application.js文件.

如果我检查html页面,我看到正确加载了js文件,但是没有显示该消息.如果我重新加载页面(通过按f5),则正确显示该消息.

当页面加载时,加载了javascript(我可以在浏览器的源代码中看到它)但是没有执行.

你能帮助我吗?

解决方案: Rails 4:如何将$(document).ready()与turbo-links一起使用

javascript ruby ruby-on-rails asset-pipeline ruby-on-rails-4

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

Capybara - 无法点击链接

我正在使用 Capybara 2.4.4 单击链接。html是这样的:

<a name="skiplink" id="skiplink" type="button" href="javascript:void(0);" onclick="skipForm(); return false;">salta</a>
Run Code Online (Sandbox Code Playgroud)

水豚命令:

find("a", :text => "salta").click
find('skiplink').click
Run Code Online (Sandbox Code Playgroud)

两者都不起作用:

Failure/Error: find("a", :text => "salta").click
     NoMethodError:
       undefined method `empty?' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

我已经从save_and_open_page输出中复制粘贴了 html,所以它可能是正确的

我正在使用默认驱动程序(无硒)

谢谢

ruby tdd bdd rspec capybara

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

simple_form删除方法而不是post方法

在simple_form中可以使用http delete动词而不是默认的post动词吗?

<%= simple_form_for @object , method: :delete do |f| %>
    <%= f.input :instance_name, as: :check_boxes, collection: @roles  %>
    <%= f.button :submit %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

它不起作用.

ruby-on-rails simple-form

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

rails_admin在控制器中设置current_user

我有一个事件模型:

class Event < ActiveRecord::Base
  belongs_to :author, class_name: 'User'
end
Run Code Online (Sandbox Code Playgroud)

我可以输入控制台:

e=Event.last
e.author
Run Code Online (Sandbox Code Playgroud)

在rails_admin中,当我创建一个新事件时,我不想在表单中显示author_id字段.我想在控制器中设置这样的东西:

@e=Event.new(params)
@e.author_id=current_user.id
@e.save
Run Code Online (Sandbox Code Playgroud)

可以在rails_admin中执行吗?

我在官方维基中找到了这个文档,但我不想使用cancan能力,我不想在表单中设置一个隐藏字段的author_id字段因为安全性很危险,实际上是POST请求可以使用自定义author_id覆盖.我想简单地在控制器中分配author_id.有可能吗?

ruby-on-rails rails-admin

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

rails_admin显示除一个字段外的列表中的所有字段

在rails_admin gem中,我有一个带有某个字段的模型.在列表操作中可以查看除一个字段以外的所有字段吗?如果我写:

rails_admin do
 list do
   field :name
 end
end
Run Code Online (Sandbox Code Playgroud)

我只看到这个字段,我需要反向行为.我找不到任何解决方案

#somethis like this
rails_admin do
 list do
   field :default , except :created_at
 end
end
Run Code Online (Sandbox Code Playgroud)

你能帮助我吗?

一个可能的解决方法是列出所有必要的字段,但在我看来并不是很干净

解决方案 这对我有用:

list do
      exclude_fields :created_at
end
Run Code Online (Sandbox Code Playgroud)

field ruby-on-rails rails-admin

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

红宝石,正则表达式从字符串中提取价格

在 ruby​​ 中,我有一个这样的字符串:

str= 43,69 €
Run Code Online (Sandbox Code Playgroud)

使用正则表达式可以获得43,69吗?

我试过:

/\d+(?:\.\d+)?/
Run Code Online (Sandbox Code Playgroud)

但输出不正确: 43.0

ruby regex ruby-on-rails

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

Rails 将当前日期转换为另一种格式

在 Rails 中,我试图本地化日期:

2.1.1 :005 > Date.today
 => Mon, 14 Apr 2014 
2.1.1 :006 > I18n.localize(Date.today)
 => "14/04/2014" 
2.1.1 :007 > 
Run Code Online (Sandbox Code Playgroud)

第二个输出不是第一个的正确翻译!

你能帮助我吗 ?

ruby-on-rails i18n-gem rails-i18n

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

Extjs将项添加到扩展类

使用Extjs 5我正在定义我的自定义工具栏:

Ext.define('Core.toolbar.view.ToolbarView',
{
        extend: 'Ext.toolbar.Toolbar',

        dock: 'top',
        items: [
        {
                xtype: 'button',
                text: 'add'
        },
        {
                xtype: 'button',
                text: 'remove'          
        }]

});
Run Code Online (Sandbox Code Playgroud)

现在我想用它:

Ext.define('MyApp.view.ToolbarView',
{
        extend: 'Core.toolbar.view.ToolbarView',

        items: [
        {
                xtype: 'button',
                text: 'ADDING AN OTHER BUTTON'
        }]

});

Ext.create('MyApp.view.ToolbarView');
Run Code Online (Sandbox Code Playgroud)

使用items属性我用新项目覆盖旧项目,但我不想这样做.我想添加第三个按钮.

有可能吗?

javascript extjs extjs5

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

Extjs 3.4问题渲染工具栏中的按钮

使用Extjs 3.4.我正在网格上创建一个顶部工具栏.

Ext.onReady(function() {
    var colModel = new Ext.grid.ColumnModel({
        columns: [{
            header: "Sottogruppo",dataIndex: 'some'
        }],
        defaults: {
            width: 50,
            sortable: false
        }
    });

    var saveButton = new Ext.Button({text: "Salva",id: 'save'});    

    var tbar = new Ext.Toolbar({items: [saveButton]});

    var grid = new Ext.grid.EditorGridPanel({
        colModel: colModel,
        tbar: tbar
    });
    grid.render("grid");
});
Run Code Online (Sandbox Code Playgroud)

chrome控制台显示以下错误:

Uncaught TypeError: Cannot read property 'getSortState' of undefined ../JS/ext-3.3.1/ext-all-debug.js
Run Code Online (Sandbox Code Playgroud)

想法?

解决方案 在网格配置中添加商店:

store: new Ext.data.ArrayStore()
Run Code Online (Sandbox Code Playgroud)

javascript extjs

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