在运行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文件中添加什么?
我发现这很多,我不确定接近它的最佳方法.
我的问题是如何在使用外键查找表或直接在请求它的表中使用查找表值之间做出决定,完全避免查找表关系.
要记住的要点:
使用第二种方法,如果在查找表中更改了数据,则需要对引用数据的所有记录进行批量更新.
这更侧重于有很多列引用许多查找表的表.因此,每次查询表时,许多外键意味着很多连接.
这里有最佳实践,还是需要考虑的关键点?
我使用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}}以确保集合存在.
我想在子目录中组织我的控制器.这是一个例子:
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)
但我必须为每个动作和嵌套资源添加一个路由......
在指定摘要标记注释时,是否有一种方法可以使用<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)
谢谢
我想实现一种收藏列表.让我们看一个这个例子的播放列表:
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)
有更好的想法吗?
我正在开发一个带有登陆页面的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)
有任何想法吗?
我正在使用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)
但是这并没有对齐我的复选框.
有谁知道如何对齐复选框是这种模式?
我.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.