给出rails中的符号,我如何获得一个类?所以我可以这样说:
give_class(:post).find(:all)
Run Code Online (Sandbox Code Playgroud)
或类似的.
我一直在阅读关于rails安全问题的内容,而让我最关心的是大规模分配.我的应用程序正在使用attr_accessible,但是我不确定我是否完全知道处理暴露关系的最佳方法是什么.假设我们有一个基本的内容创建/所有权网站.用户可以创建博客帖子,并且具有与该博客帖子相关联的一个类别.
所以我有三个型号:
我允许在category_id上进行质量分配,因此用户可以将其取消,将其更改为其中一个类别,或通过批量分配,我认为他们可以将其更改为其他人的类别.这就是我不确定最好的方法是什么.
我调查的资源(特别是railscast#178和从该railscast提供的资源)都提到该关联不应该是可批量分配的,这是有道理的.我只是不确定如何允许用户改变帖子类别的方式.
关于如何最好地解决这个问题的想法?我看错了吗?
更新:希望更多地澄清我的担忧.
假设我在Post,我是否需要以下内容:
def create
@post = Post.new(params[:category])
@post.user_id = current_user.id
# CHECK HERE IF REQUESTED CATEGORY_ID IS OWNED BY USER
# continue on as normal here
end
Run Code Online (Sandbox Code Playgroud)
这似乎很多工作?我需要在更新和创建操作中检查每个控制器上的内容.请记住,不仅有一个belongs_to关系.
同样的.war文件可以很好地部署到Glassfish v2.1上.我不知道上次我尝试使用v3,但我想查看热部署功能,因为据传它正在使用glassfish v3在netbeans 6.8中工作.所以,我像往常一样部署,我收到以下错误:
SEVERE: Exception while invoking class org.glassfish.ejb.startup.EjbDeployer load method
....
SEVERE: Exception while loading the app
java.lang.RuntimeException: Unable to load EJB module. DeploymentContext does not contain any EJB Check archive to ensure correct packaging for c:\src\svn\trunk\gui\target\WEBAPP
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:134)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:64)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:153)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:220)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:314)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:169)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1159)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1218)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1207)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:362)
at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:201)
at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:241)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:789)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:697)
at …Run Code Online (Sandbox Code Playgroud) ANSI C raise() 函数的 golang 等价物是什么?
有关 raise() 的示例用法,请参见此处: