我正在一个类中构建一个URL,我希望以后只需更改routing.yml文件就可以更改路由.
如果我有路线:
userSignup:
url: /user/signup
param: { module: user, action: signup }
Run Code Online (Sandbox Code Playgroud)
如何在类中使用url_for('userSignup')帮助程序来动态创建URL?
我有一个模拟房子的应用程序.House has_many Rooms,Rooms has_many Lights和Small_appliances等.我还有一个名为Calculator的控制器,它是应用程序的访问方式.使用计算器控制器将数据添加到房屋(及其房间).然后生成一个报告,该报告位于app/views/calculator/report.html.erb.
我的问题是报告的所有计算和逻辑应该在哪里?目前我在视图中都有这一切,在calculator_helper中有一些东西.通常这会出现在模型中,对吧?但是Calculator没有生成的模型.这是什么标准?
这是计算器控制器.
class CalculatorController < ApplicationController
def index
end
def save_house
@house = House.new(params[:house])
respond_to do |format|
if @house.save
format.html { render :action => 'add_rooms', :id => @house }
format.xml { render :xml => @house, :status => :created, :location => @house }
else
format.html { render :action => 'index' }
format.xml { render :xml => @house.errors, :status => :unprocessable_entity }
end
end
end
def add_rooms
@house = House.find(params[:id])
@rooms = Room.find_by_house_id(@house.id)
rescue ActiveRecord::RecordNotFound
logger.error("Attempt to …Run Code Online (Sandbox Code Playgroud) 我刚刚开始使用cakePHP,我看到其中有一个AJAX Helper.
我的问题很简单:我应该使用这个帮助器,还是应该继续使用jQuery进行AJAX?我应该在现有的jQuery AJAX调用中执行任何更改吗?
谢谢
我正在构建一个包含用户个人资料的用户的网站.配置文件中的许多字段都是可选的.
有很多用户生成内容的机会,因此我需要在网站的许多不同位置(评论,帖子等)显示此内容的作者.在用户的个人资料中,他能够(可选地)填写他的"名字",他的"姓氏"和"显示名称".
为了显示作者,我编写了一个帮助器方法,该方法查看这些字段的提供数组,并按此优先顺序返回用户最合适的名称:
display_name,则会显示.first_name和last_name,但没有display_name,它会显示这两个名字first_name,则会显示first_name.last_name,则会显示last_name.user123NULL 该方法效果很好,但很难看.必须有一种方法来替代嵌套的if/else语句来美化它.
public function nameify($names = NULL) {
$name = '';
if (!empty($names)) {
if (!empty($names['display_name'])) {
$name = $names['display_name'];
} elseif (!empty($names['first_name'])) {
$name = $names['first_name'];
if (!empty($names['last_name'])) {
$name .= ' ' . $names['last_name'];
}
} elseif (!empty($names['last_name'])) {
$name = $names['last_name'];
}
if (empty($name) && !empty($names['id'])) {
$name = 'user' . …Run Code Online (Sandbox Code Playgroud) 我想显示一个用宝石祖先管理的类别树.
我想使用一个帮助器,它将递归地遍历树并逐个返回类别,暂时没有html标签或内容.
module CategoriesHelper
def display_tree(category)
if category.has_children?
category.children.each do |sub_category|
display_tree(sub_category)
puts(sub_category.name) # to check if it goes here
end
end
category.name
end
end
Run Code Online (Sandbox Code Playgroud)
该category参数是根类别之一.
应该归还什么?
Sport Beauty AutomobileMen Indoor Women Children Water sport Garage如果得到它们,则意味着递归有效,但事实并非如此.为什么它只返回第一次迭代?
另外,我想按以下顺序获取它们:
root/child/child-of-child
Run Code Online (Sandbox Code Playgroud)
但如果我想回来category.name,它应该在最后一个位置.
你能告诉我你的意见吗?
PS:我刚刚发现(在添加标签期间)我在搜索中一直使用"递归"这个词,但它不存在,即使很多人在stackOveflow上使用它; o) - >"递归",但是我还是被困住了
**编辑**
现在我使用这段代码:
module CategoriesHelper
def display_tree(category)
tree = "<div class =\"nested_category\">#{category.name}"
if category.has_children?
category.children.each do |sub_category|
tree += "#{display_tree(sub_category)}"
end
end
tree += "</div>"
end
end
Run Code Online (Sandbox Code Playgroud)
这给了我:
<div …Run Code Online (Sandbox Code Playgroud) 我创建了属性类来将元数据附加到属性,因此我可以显示表单输入字段的工具提示.
HelpAttribute实施IMetadataAware:
Public Class HelpAttribute
Inherits Attribute
Implements System.Web.Mvc.IMetadataAware
Public Sub New(text As String)
_text = text
End Sub
Private _text As String
Public ReadOnly Property Text As String
Get
Return _text
End Get
End Property
Public Sub OnMetadataCreated(metadata As System.Web.Mvc.ModelMetadata) Implements System.Web.Mvc.IMetadataAware.OnMetadataCreated
metadata.AdditionalValues.Add("HelpText", _text)
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
我在扩展方法中使用此元数据:
<Extension()>
Public Function HelpFor(Of TModel, TProperty)(ByVal htmlHelper As HtmlHelper(Of TModel), expression As Expression(Of Func(Of TModel, TProperty))) As MvcHtmlString
Dim metaData = ModelMetadata.FromLambdaExpression(Of TModel, TProperty)(expression, htmlHelper.ViewData)
If metaData.AdditionalValues.ContainsKey("HelpText") …Run Code Online (Sandbox Code Playgroud) 我在codeigniter中有一个表单,并希望我的输入和set_value()都有一个默认值.
这是我的意见:
echo form_input('job_position',set_value('job_position'));
Run Code Online (Sandbox Code Playgroud)
我有一个设定值并且正在工作,但是如何添加默认值'12'?
需要将csv或xls导入到使用CodeIgniter创建的Application中.这有什么图书馆吗?任何建议表示赞赏.
我有一个rspec规范:
require "spec_helper"
describe ApplicationHelper do
describe "#link_to_cart" do
it 'should be a link to the cart' do
helper.link_to_cart.should match /.*href="\/cart".*/
end
end
end
Run Code Online (Sandbox Code Playgroud)
和ApplicationHelper:
module ApplicationHelper
def link_to_cart
link_to "Cart", cart_path
end
end
Run Code Online (Sandbox Code Playgroud)
这在访问站点时有效,但规范失败,并显示有关路由的RuntimeError不可用:
RuntimeError:
In order to use #url_for, you must include routing helpers explicitly. For instance, `include Rails.application.routes.url_helpers
Run Code Online (Sandbox Code Playgroud)
因此,我Rails.application.routes.url在我的规范中包含了spec_helper-file,甚至包括ApplicationHelper它本身,都无济于事.
编辑:我正在通过spork运行测试,也许这与它有关并导致问题.
在使用Spork运行时,如何包含这些路线助手?
我在一个单独的单元中有一些常量,如果type为ShortInt(<128),我不能对这些常量执行.ToString.
示例:创建单位并添加:
const abc = 127;
Run Code Online (Sandbox Code Playgroud)
创建一个TForm并在FormShow中执行:
Edit1.Text := abc.tostring;
Run Code Online (Sandbox Code Playgroud)
你知道为什么它不起作用吗? 输入所需的记录,对象或类.
如果常量在同一个单元中,它可以工作.