小编Mit*_*tch的帖子

Show方法中的ActiveAdmin显示集合

我有包,有多个组件(使用has_many通过Bundles链接)

在ActiveAdmin中,当我显示一个包时,我希望能够显示链接到它的所有组件

所以我有一个show方法如下:

show do
 attributes_table do
  row :description

  row 'Components' do |n|
     package.components.each do |component|
       #debugger
       component.name
     end
  end
 end
end
Run Code Online (Sandbox Code Playgroud)

当我显示页面时,它会显示每个记录的完整版本,即(其中一个我在下面显示,但会有尽可能多的组件):

[#<Component id: 2, component_token: "6e9be0b0-71c0-012f-d523-00254bca74c4", name: "Exercise Module", description: "This is the exercise module", created_at: "2012-04-26 11:25:20", updated_at: "2012-04-26 11:25:20">]
Run Code Online (Sandbox Code Playgroud)

当我在调试它的位置停止调试器时,component.name的值被赋予"练习模块",但这不是输出到节目的内容 - 事实上,ActiveAdmin似乎忽略了该组件中的所有内容| 块.

如何显示记录属性,而不是整个记录本身?

谢谢

ruby-on-rails activeadmin

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

Rails没有在Gemfile中运行gem

我在RVM环境中运行Rails 3.2.1和Ruby 1.9.2-p290

在我的dev文件夹中,我有许多不同的Rails应用程序,都运行上面的,但我还没有创建单独的gemsets

我创建了一个带有自己的gemfile的新应用程序,运行了bundle install等等,所有这些都没问题,直到我回到我最初工作的主应用程序

当我现在做一个rake路线时,我得到了错误

rake aborted!
You have already activated rake 10.0.3, but your Gemfile requires rake 10.0.2. Using bundle exec     may solve this. 
Run Code Online (Sandbox Code Playgroud)

我想我知道如何回到正轨,但这是我不明白的地方:

当我查看.rvm/gems/ruby​​-1.9.2-p290/gems文件夹时,我可以看到rake-0.8.7,rake-0.9.2.2,rake-10.0.2的每个宝石的文件夹,耙10.0.3

所以我安装了一个版本的rake 10.0.2,我的主应用程序gemfile.lock调用rake(10.0.2),当我运行bundle exec rake路由时它实际上工作(假设运行10.0.2?),但是当我Rails运行一个直接的rake路线,似乎想要运行不同版本的Rake而不被要求.

所以我的问题是如何知道安装的Gem的哪个版本实际上正在运行,因为调用已安装的Gem的特定版本似乎没有按照您的预期进行?

(另外,我想如果我在同一个RVM空间内开发不同的应用程序,我应该为每个应用程序创建单独的gemsets?)

gem rvm ruby-on-rails-3

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

jquery可排序元素旁边的黑点是什么?

我第一次使用JQuery sortable,我有一个可排序的元素列表,所有元素都正常工作(小部件,带有标题和一些内部表单等工作).

我已经将一个标题元素定义为一个句柄,用于移动列表中的每个小部件,并且工作正常,但是在我的每个可排序元素的左侧会出现一个黑点,其行为类似于句柄.

在此输入图像描述

在某些元素中,点会在元素开始移动时出现,而在其他元素中则会永久固定

我用Google搜索了一个小时左右,并且发现它附近没有任何东西

这个黑点是什么,我该如何删除它?

jquery jquery-ui-sortable ruby-on-rails-3 apotomo

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

AsynchTask从doInBackground返回时崩溃

我有以下代码:

public class TestSynch extends Activity {

public static ArrayList<HashMap<String,String>> list;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.splash);
    Context ctx = this.getApplicationContext();


    new ProcessFileTask().execute(ctx);

    Intent i = new Intent(TestSynch.this, ListSchools.class);
    i.setAction(Intent.ACTION_VIEW);
    i.putExtra("arraylist", list);
    startActivity(i);

}

private class ProcessFileTask extends AsyncTask<Context, Void, ArrayList<HashMap<String,String>>> {
    @Override
    protected ArrayList<HashMap<String,String>> doInBackground(Context... ctx) {

        ArrayList<HashMap<String,String>> threadList = FileOperations.getListAsMaps(ctx[0]);
        return threadList;
    }
    @Override
    protected void onPostExecute(ArrayList<HashMap<String,String>> result) {
         list = result;
        return;
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以调试返回threadList; 在doInBackground中的行,并且ArrayList变量threadList是完全正确的.

但是,onPostExecute似乎没有被调用,并且从doInBackground返回时Activity崩溃,LogCat建议尝试触发Intent的nullPointerException(我之前测试过并且在我开始搞乱AsynchTask之前工作正常)

知道为什么会这样吗?代码看起来很简单......

谢谢

android

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