我需要一个帮助器来知道是否已经加载了属性作为避免的方法LazyInitializationException.可能吗?
@Entity
public class Parent {
@OneToMany
private List<Child> childList;
}
@Entity
public class Child {
}
"select distinct p from Parent p left join fetch p.childList";
// Answer goes here
// I want to avoid LazyInitializationException
SomeHelper.isLoaded(p.getChildList());
Run Code Online (Sandbox Code Playgroud) 几个问题:
是否可以在辅助模块中调用控制器方法(例如,应用程序帮助程序)?
如果是这样,帮助程序如何处理视图的呈现?忽略它?
在什么情况下你想从帮助器调用控制器方法?这是不好的做法吗?
你有在helper中调用控制器方法的示例代码吗?
这可能是一个有点低的问题,但是有没有优雅的方法,如何更改标签助手中的标签文本?
= f.label :name
Run Code Online (Sandbox Code Playgroud)
生成
<input id="car_name" name="car[name]" size="30" type="text">
Run Code Online (Sandbox Code Playgroud)
如果我想在标签上写下文字,比如说,你的车而不是名字,怎么做?
一种方法是直接将标签标签写为HTML,但这有点脏......
我正在使用private_pub将订阅客户端的通知推送给我的用户.在我的application.html.haml中,我有:
...
= javascript_include_tag 'application'
= subscribe_to "/#{@user.access_token}/notifications"
...
Run Code Online (Sandbox Code Playgroud)
subscribe_to帮助程序在开发中工作正常.部署到生产时,会记录以下错误:
ActionView::Template::Error (undefined method `subscribe_to' for #<#<Class:0x00000001f372e8>:0x00000001fded90>):
5: = stylesheet_link_tag 'application', :media => 'all'
6: = include_gon(:init => true)
7: = javascript_include_tag 'application'
8: = subscribe_to "/#{@user.access_token}/notifications"
9: = csrf_meta_tags
10:
11: %body
app/views/layouts/application.html.haml:8:in `_app_views_layouts_application_html_haml__1867651381877570337_14592040'
Run Code Online (Sandbox Code Playgroud)
如何在生产环境中访问此帮助程序方法?
我开始研究一些框架.特别是Code Igniter让我很着迷.但通过我发现的文件夹搜索system/helpers包含21个PHP文件.在这些文件中,我们发现了数千个与html,xml,字符串,数组,数字,表单等相关的函数.
这应该很简单,但我真的不明白这些helper文件的含义.我的意思是:什么通常被认为是帮手?他们需要吗?我可以没有风险地删除它们吗?
我定义了一个helper类,如下所示
module SessionsHelper
def current_user
@current_user= User.find_by_fbid(session[:fbid])
end
def sign_in(user)
session[:fbid] = user.fbid
@current_user = user
end
def signed_in?
!current_user.nil?
end
end
Run Code Online (Sandbox Code Playgroud)
我在我的应用程序控制器中包含了Helper类
class ApplicationController < ActionController::Base
protect_from_forgery
include SessionsHelper
end
Run Code Online (Sandbox Code Playgroud)
登录方法从会话控制器调用
class SessionsController < ApplicationController
def create
user = User.find_or_create_by_fbid(params[:user][:fbid])
user.update_attributes(params[:user])
sign_in(user)
redirect_to user_path(user)
end
end
Run Code Online (Sandbox Code Playgroud)
但是我无法从用户#show view访问'current_user'变量.
<% if signed_in? %>
<p>
<b>Current User:</b>
<%= current_user.name %>
</p>
<% end %>
Run Code Online (Sandbox Code Playgroud)
它说:nil的未定义方法`name':NilClass
任何人都可以建议吗?方法current_user根本没有从index调用.
session ruby-on-rails helper session-cookies ruby-on-rails-3
JavaScript新手在这里,当我遇到一个用于创建对象的辅助函数时,我在工作中经历了一些js代码,就像这样
createElement = function(name, data){
if(name == TYPES.TEXT){
return new Text(data);
}
else if(name == TYPES.WORD){
return new Word(data);
}
else if(name == TYPES.PARAGRAPH){
return new Paragraph(data);
}
else if(name == TYPES.TABLE){
return new Table(data);
}
<list goes on and on and on... >
}
Run Code Online (Sandbox Code Playgroud)
虽然这确实完成了工作,但我想知道是否有更好,更清晰的写作方式.
如何从ember中的另一个助手调用把手块助手.
我有兴趣在绑定帮助器中转换以下内容.
{{#each link in sideMenuLinks}}
<li class="navigation page">
{{#linkTo ROUTE_VARIABLE link.linkToRouteContext}}
{{{link.iconTag}}}<i class="icon-right-open"></i>{{link.linkText}}</a>
{{/linkTo}}
</li>
{{/each}}
Run Code Online (Sandbox Code Playgroud)
请注意,我必须在帮助程序中调用{{#linkTo}}块,并使用属性link.linkToRoute中的值更改ROUTE_VARIABLE.
ColumnSort我的rails项目中有一个模块.
module ColumnSort
extend ActiveSupport::Concern
def sort_column
# do something
end
end
Run Code Online (Sandbox Code Playgroud)
我正在CompaniesController和它一起使用它UsersController.
class CompaniesController < ApplicationController
include ColumnSort
helper_method :sort_column
end
class UsersController < ApplicationController
include ColumnSort
helper_method :sort_column
end
Run Code Online (Sandbox Code Playgroud)
它工作正常.但是我想helper_method :sort_column在模块中写下这一行ColumnSort.我怎么写呢?
我面临着一段Fatal error: Class 'Mage_Configurableswatches_Helper_Productimg' not found in /app/Mage.php on line 547时间来刷新swatch图像缓存.
请让我知道如何解决这个问题?
helper ×10
php ×2
codeigniter ×1
controller ×1
ember.js ×1
fatal-error ×1
frameworks ×1
hibernate ×1
image ×1
java ×1
javascript ×1
label ×1
lazy-loading ×1
magento-1.9 ×1
object ×1
session ×1