小编cwe*_*ton的帖子

如何设置和使用Rails路由前缀

在运行rake路线时,我看到:

 Prefix   Verb   URI Pattern                                       Controller#Action
 articles  GET    /articles(.:format)                               articles#index
 new_article GET    /articles/new(.:format)                           articles#new
Run Code Online (Sandbox Code Playgroud)

和其他一些我遗漏的人.

这是因为我的routes.rb文件有:

resources :articles
Run Code Online (Sandbox Code Playgroud)

我的问题是这个前缀究竟是什么,我将如何更改它?

根据我的理解,它是URI的快捷方式,所以在我的应用程序中我可以引用new_article而不是articles/new?我真的参考@new_article还是有其他格式来引用它.

第二个问题,我该如何编辑?假设我想要一个名为new_document的前缀而不是new_article用于该URL上的get请求.我会在routes.rb文件中添加什么?

我从rails指南中查看了这个链接,但它似乎显示的是如何通过在它前面添加前缀来使URL更长.

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

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

存储查找表id或纯数据之间的决定

我发现这很多,我不确定接近它的最佳方法.

我的问题是如何在使用外键查找表或直接在请求它的表中使用查找表值之间做出决定,完全避免查找表关系.

要记住的要点:

  • 使用第二种方法,如果在查找表中更改了数据,则需要对引用数据的所有记录进行批量更新.

  • 这更侧重于有很多列引用许多查找表的表.因此,每次查询表时,许多外键意味着很多连接.

  • 此数据将来自下拉列表,这些列表将从查找表中提取.为了在重新加载时匹配数据,值必须在现有列表中(与第一个点相关).

这里有最佳实践,还是需要考虑的关键点?

sql database lookup database-normalization

14
推荐指数
2
解决办法
6999
查看次数

JQuery模板 - 太多的递归

我使用jquery模板生成树结构,以显示部分和项目的树视图.

数据结构如下所示,每个部分都有项目和部分,每个项目可以包含更多部分:

section
    items
        item
            sections
        item
            sections
    sections
        section
            sections
            items

    ...and so on
Run Code Online (Sandbox Code Playgroud)

然后我的模板以递归方式相互调用:

<script id="my-item-tmpl" type="text/x-jquery-tmpl">
    <li>
        <span>${text}</span>
        <ul>
        {{each sections}}
             {{tmpl($value) "sectionTmpl"}}
        {{/each}}
        </ul>
    </li>
</script>

<script id="my-section-tmpl" type="text/x-jquery-tmpl">
    <li>
        <span>${text}</span>
        <ul>
        {{each items}}
             {{tmpl($value) "itemTmpl"}}
        {{/each}}

        {{each sections}}
             {{tmpl($value) "sectionTmpl"}}
        {{/each}}
        </ul>
    </li>
</script>




$("#my-item-tmpl").template('itemTmpl');
$("#my-section-tmpl").template('sectionTmpl');


$.tmpl('sectionTmpl', { section }).appendTo(this);
Run Code Online (Sandbox Code Playgroud)

然而,我发现在结构中有大约4个级别,我"too much recursion在控制台中收到"错误".

这仅仅是jQuery Template引擎的限制吗?

编辑:

我通过删除{{each}}并用{{tmpl}}呼叫替换它来解决这个问题.该{{each}}是没有必要的.我还将每个{{tmpl}}调用包装在一起{{if}}以确保集合存在.

javascript jquery jquery-plugins jquery-templates

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

在嵌套资源的子目录中对控制器进行分组

我想在子目录中组织我的控制器.这是一个例子:

routes.rb中:

resources :locations do
  resources :users
end
Run Code Online (Sandbox Code Playgroud)

我想将我的控制器放在适当的子目录中:

app/controllers/locations/users_controller.rb
Run Code Online (Sandbox Code Playgroud)

并且网址是(标准):

/locations/1/users
/locations/1/users/new
/locations/1/users/10/edit
...
Run Code Online (Sandbox Code Playgroud)

如果我的路由中有一个命名空间,我可以将users_controller.rb更改为

class Locations::UsersController < LocationsController
end
Run Code Online (Sandbox Code Playgroud)

但它不适用于嵌套资源,而是出现以下错误:

 Routing Error
 uninitialized constant UsersController
Run Code Online (Sandbox Code Playgroud)

更新

如果我添加:

resources :locations do
  resources :users
end
match 'locations/:location_id/users' => "locations/users#index"
Run Code Online (Sandbox Code Playgroud)

但我必须为每个动作和嵌套资源添加一个路由......

rails-routing ruby-on-rails-3

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

Visual Studio - 摘要标记注释 - 可选参数

在指定摘要标记注释时,是否有一种方法可以使用<param>标记来指出参数是可选的,即.客户端可以提供值或null,例如:<param name="Mime" optional="true">.

谷歌搜索未能为我提供一组属性或允许值的集合.

/// <summary>
/// Sets data associated with instance
/// </summary>
/// <param name="Key">The key defining the data</param>
/// <param name="Value">The data</param>
/// <param name="Mime">The mime type of the data (optional)</param>     <----- Mark as optional
Run Code Online (Sandbox Code Playgroud)

谢谢

.net c# xml xml-comments visual-studio

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

使用Ruby on Rails重新排列的有序列表

我想实现一种收藏列表.让我们看一个这个例子的播放列表:

Song A
Song D
Song B
Song C
Run Code Online (Sandbox Code Playgroud)

应该保存歌曲的顺序,用户应该能够重新排列此顺序并在列表中的任意点插入新元素.

我的想法是在保存列表时使用字段"position"并为列表的所有元素重置它.我认为这就是Javas Hibernate所做的.

另一个想法是使用具有很大差异的位置编号,比如1000,这样仍有修改的余地:

Song A 1000
Song D 2000
Song B 3000
Song C 4000
Run Code Online (Sandbox Code Playgroud)

歌曲C将插入位置编号为1500的A和D之间:

Song A 1000
Song C 1500 
Song D 2000
Song B 3000
Run Code Online (Sandbox Code Playgroud)

有更好的想法吗?

orm ruby-on-rails list ruby-on-rails-3

10
推荐指数
2
解决办法
5709
查看次数

NLog - 将NULL写入可选数据库列

我正在使用NLog登录ASP.Net应用程序并使用Microsoft Sql Server的数据库目标.

我有一些可选的记录参数,并不总是指定.我希望这些在没有提供时写为null,但是NLog似乎总是把它们写成空字符串.

有没有办法将其配置为将null写为默认值?

参考:https://github.com/nlog/NLog/wiki/Database-target

.net c# asp.net logging nlog

9
推荐指数
4
解决办法
2864
查看次数

Rails:用于不同控制器的表单

我正在开发一个带有登陆页面的rails应用程序.在目标网页上,用户可以注册该应用.对于登录,有一个带额外控制器的额外视图.

它看起来像这样:

views/landinpage/index.html --> sign up form
views/login/index.html --> login form
Run Code Online (Sandbox Code Playgroud)

但我只想拥有一个控制器

controllers/login_controller --> create new user from sign up form & check login data
Run Code Online (Sandbox Code Playgroud)

所以我必须在登陆页面视图和login_controller之间建立连接.

这是我的尝试:

<%= form_for @login, :url => { :controller => "login_controller", :action => "create" }, :html => {:method => :post} do |f| %>
Run Code Online (Sandbox Code Playgroud)

但它会引发路由错误:

No route matches {:controller=>"login_controller", :action=>"create"}
Run Code Online (Sandbox Code Playgroud)

我已经在routes.rb中定义了登录资源,但似乎问题出在其他地方?

resources :logins
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

ruby-on-rails

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

Qt QTableView - 使用IsUserCheckable时对齐复选框

我正在使用Qt :: ItemIsUserCheckable的 QTableView复选框标志来显示表格单元格中的复选框.

在读取了一些对齐的东西以试图将复选框置于单元格中心之后,我将Qt :: AlignCenter作为TextAlignmentRole从models data()函数返回.

QVariant ExampleModel::data(const QModelIndex &index, int role) const 
{
  if(!index.isValid())
     return QVariant();

  if (role == Qt::TextAlignmentRole) 
       return Qt::AlignCenter | Qt::AlignVCenter;
}
Run Code Online (Sandbox Code Playgroud)

但是这并没有对齐我的复选框.

有谁知道如何对齐复选框是这种模式?

checkbox qt alignment

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

jquery .on容器元素附加到多个选择器

.on()用来将点击事件附加到页面上动态显示的多个元素.我遇到的问题是,当我.on在页面上添加一个容器并想要将click事件附加到容器中的多个元素时,后者会覆盖前一个元素.

<div id="container">
   <!-- elements here appear dynamically -->
   <div id="id1"></div>
   <div id="id1"></div>
</div>

 <script>
   $('#container').on("click", "#id1", function(){});
   $('#container').on("click", "#id2", function(){});
 </script>
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,只有id2的click事件有效.

有没有解决的办法?

谢谢,Ev.

jquery onclick addeventlistener propagation

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