如何在不渲染此文件的情况下向客户端发送文件(PDF,CSV等)?
例如,想象一下学生控制器(使用脚手架创建),我们有'新'形式和'创建'动作:
def new
@student = Student.new
respond_to do |format|
format.html # new.html.erb
end
end
def create
@student = Student.new(params[:student])
respond_to do |format|
if @student.save
flash[:notice] = 'Student created'
format.html { redirect_to(@student) }
else
format.html { render :action => "new" }
end
end
end
Run Code Online (Sandbox Code Playgroud)
成功创建学生后,它将重定向到"显示"模板.那没问题!但我需要发送给客户端 - 例如PDF文件,然后呈现'show'动作.
此PDF文件类似于客户端的创建收据.
额外信息:现在使用Prawn制作PDF并通过以下代码发送给客户:
respond_to do |format|
format.pdf { render :layout => false }
end
Run Code Online (Sandbox Code Playgroud)
总之,我需要获得填写的表格,创建学生,PDF发送到浏览器(作为创建收据)和渲染"秀"的行动,以显示创建学生.
非常感谢你.
我想使用slick-util的教程在我的openGL应用程序之上呈现一串文本:http:// lwjgl.org/wiki/index.php?title=Slick-Util_Library_-_Part_3_-_TrueType_Fonts_for_LWJGL
这是我的初始代码:
private void init() {
try {
Display.setDisplayMode(new DisplayMode(640, 480));
Display.setVSyncEnabled(true);
Display.setTitle(this.windowTitle);
Display.create();
Keyboard.create();
} catch (LWJGLException e) {
Sys.alert("Error", "Initialization failed!\n\n" + e.getMessage());
System.exit(0);
}
/* OpenGL */
int width = Display.getDisplayMode().getWidth();
int height = Display.getDisplayMode().getHeight();
GL11.glViewport(0, 0, width, height); // Reset The Current Viewport
GL11.glMatrixMode(GL11.GL_PROJECTION); // Select The Projection Matrix
GL11.glLoadIdentity(); // Reset The Projection Matrix
GLU.gluPerspective(45.0f, ((float) width / (float) height), 0.1f, 100.0f); // Calculate The Aspect Ratio Of The Window
GL11.glMatrixMode(GL11.GL_MODELVIEW); // Select The …Run Code Online (Sandbox Code Playgroud) 您好,我有以下问题:
public class TestCombo extends JFrame{
public TestCombo() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(200,200);
setVisible(true);
setLayout(new BorderLayout());
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(2,4));
JLabel l1 = new JLabel("test1");
JLabel l2 = new JLabel("test2");
panel.add(l1);
panel.add(l2);
// JComboBox<String> combo = new JComboBox<String>();// <-- uncomment this for the problem
this.add(panel, BorderLayout.NORTH);
}
public static void main(String[] args) {
new TestCombo();
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我正在做一个非常简单的例子.如果我取消注释标记的部分,则不显示标签项.如果我调整窗口大小,它们会再次可见.这里奇怪的是我甚combo至没有添加到面板或任何地方.我只是在实例化它.有人能告诉我为什么我需要调整框架大小以查看标签吗?难道我做错了什么?
我有一个非常简单的rails应用程序,它是基于ajax的一些功能.当我在开发环境中使用它时,一切都按预期运行.然而,在生产环境中发生了一些奇怪的事情:当进行ajax调用时,正在呈现HTML(基于HAML)布局而不是js(基于咖啡).
在比较生产和开发中的日志时,很明显我在处理响应的方式上有一些问题,但是我现在已经抓了几个小时而没有任何线索.
假设我的请求是:/software_tags/1/edit.js在我的开发日志中,我可以看到(输出是正确的,我得到了预期的javascript页面):
Started GET "/software_tags/1/edit.js" for 127.0.0.1 at 2012-07-17 16:59:34 -0700
Processing by SoftwareTagsController#edit as JS
Parameters: {"id"=>"1"}
Rendered shared/_error_messages.haml (0.1ms)
Rendered software_tags/_form.haml (4.5ms)
Rendered software_tags/edit.js.coffee (5.7ms) <---- THIS IS GOOD!
Completed 200 OK in 10ms (Views: 8.1ms | ActiveRecord: 0.4ms)
Run Code Online (Sandbox Code Playgroud)
然而,在我的开发日志中,我看到(输出错误,我得到HTML页面):
Started GET "/software_tags/1/edit.js" for x.x.x.x at 2012-07-18 01:59:54 +0200
Processing by SoftwareTagsController#edit as JS <--- Wouldn't that force the edit.js.coffee to be rendered instead of the edit.haml?
Parameters: {"id"=>"1"}
Rendered shared/_error_messages.haml (0.1ms)
Rendered software_tags/_form.haml (2.8ms)
Rendered software_tags/edit.haml …Run Code Online (Sandbox Code Playgroud) 当我单击一个方法来呈现页面的一部分时,在我手动刷新页面之前,它不会改变任何内容.
这是豆子:
boolean showPage = true;
public boolean getShowPage(){
return showPage;
}
Run Code Online (Sandbox Code Playgroud)
这是观点:
<h:form>
<p:commandButton value="Click" action="#{bean.hideContents()}" />
</h:form>
<p:panel rendered="#{bean.showPage}">
Contents
</p:panel>
Run Code Online (Sandbox Code Playgroud)
当我手动刷新页面时,面板会被隐藏,否则就不会.这是怎么造成的,我该如何解决?
我的玉模板是
div.article
#{content}
Run Code Online (Sandbox Code Playgroud)
内容是 <p>Sample Test</p>
所以渲染结果应该是
<div class="article">
<p>Sample Text</p>
</div>
Run Code Online (Sandbox Code Playgroud)
但渲染结果是
<div class="artichle">
<<p>Sample Text</p>></<p>Sample Text</p>>
</div>
Run Code Online (Sandbox Code Playgroud)
为什么会这样?如何正确地使用html标签呈现内容?
我很好奇NURBS是如何在GPU/OpenGL图形管道中渲染的.我知道在OpenGL和GLUT中有各种调用,可以使用glMap和glMapGrid从编码角度轻松渲染NURBS对象,但我没有得到的是OpenGL完成此过程的过程.NURBS背后的想法是使用曲线来定义曲面,而图形管道似乎围绕三角形栅格化和三角形网格构建,而NURBS基于Bezier曲线,它们是弯曲的.
那么,从(高级)管道角度来看,NURBS实际上是如何实现的呢?
我是backbone.js的新手.我试图调用一个函数,该函数使用来自webapi的数据加载模板.
var BrowseNavListView = Backbone.View.extend({el:$("#tocDrawerNav"),
initialize: function () {
debugger;
$("#hfReferenceId").val($("#hfChannelId").val());
_.bindAll(this, 'rendersCollectively', 'RenderFocusAreaBladeContent');
this.render();
},
render: function () {
debugger;
var that = this;
var navigator = new Navigators();
navigator.fetch({
success: function (navigatorList) {
debugger;
if (navigatorList.length > 0) {
**RenderFocusAreaBladeContent(navigatorList);**
}
},
error: function (x) {
debugger;
alert(x);
}
})
},
RenderFocusAreaBladeContent: function (navigatorList) {
debugger;
divIterator = divIterator.split('_')[divIterator.split('_').length - 2] + "_"
+ (parseInt(divIterator.split('_')[divIterator.split('_').length - 1]) + parseInt(1)).toString();
var template = '<div class="tocColumn " id="' + divIterator …Run Code Online (Sandbox Code Playgroud) 我想问一下是否有这样的情况我可以清除当前渲染的页面,然后用一组新的布局重新渲染?我知道我可以通过调用重定向来实现这一点,但我必须创建另一组操作来处理1个布局.有没有办法可以在一个动作中完成它?这就是我目前的做法,但我似乎无法清除以前的布局并渲染另一组新布局......
/**
* Change a user's password
* @param int $id Owner's id
*
*/
public function actionChngPassword($id)
{
$this->pageTitle = 'Change Password';
$model=Users::model()->findByPk($id);
$model->scenario = 'chngPwd';
$this->performAjaxValidation($model);
$returnUrl = Yii::app()->homeUrl;
if(isset($_POST['Users'])){
$model->attributes = $_POST['Users'];
if($model->validate()){
$model->scenario = "";
$ip = Users::getRealIp();
$time = date('d-m-Y H:i:s');
$name = $model->usrname;
$model->old_pwd = $model->pwd;
$model->pwd = CPasswordHelper::hashPassword($model->newpwd);
$model->pw_change_on = $time = date('d-m-Y H:i:s');
$model->save();
// Send email noti to user
$revert_link= $this->createAbsoluteUrl('users/revertPassword', array('id' => $model->user_id, 'pwhash' => urlencode($model->pwd)));
ob_start();
$INC_DIR = UrlMgmt::getBaseAbsoluteUrl() …Run Code Online (Sandbox Code Playgroud) 我想知道是否可以在String中将String转换为Int.我试着看看用户是否有足够的信用来购买cours.为此,我使用模板中的渲染计算信用额度(因为我需要模板中的值,而我没有找到更好的方法来执行此操作...),如下所示:
{% set creditUser %}
{{render(controller('L3L2EntraideBundle:Credits:sommeCredits'))}}
{% endset %}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试比较creditUser:
{% if creditUser < c.idCompetenceCours.prix %}disabled="false"{% endif %}
Run Code Online (Sandbox Code Playgroud)
Symfony给我一个漂亮的错误:在L3L2UserBundle:Profile:modal_prendre_rdv.html.twig第21行渲染模板期间抛出异常("注意:类Twig_Markup的对象无法转换为int").
任何的想法 ?提前感谢您关于Stackoverflow的第一个问题,对不起我的英语.