Tag: 渲染

rails 3渲染视图无需操作

我为特定操作定义了路由并创建了一个链接。 我也创建了相应的视图,但没有代码定义控制器动作方法。 单击链接时仍会显示视图。 也就是说,在没有实际存在的动作的情况下渲染视图。 有什么解释吗?

在Rails中缺少请求的模板时呈现默认模板

对于插件,我想将以下function入侵到Rails: 当(部分)模板不存在(无论格式如何)时,我想渲染默认模板。 所以说如果users / index.html.erb不存在(或其他格式),我会调用动作’users / index’,应该呈现’default / index.html.erb’。 同样,如果我将某个操作称为“位置/编辑”并且“locations / edit.html.erb”不存在,则应显示“default / edit.html.erb” 对于partials,如果我调用一个动作’locations / index’并且模板’locations / index.html.erb’调用不存在的部分’locations / _location’,它应该呈现’default / _object’ 解决方案是seek,允许我访问模板变量(例如@users,@ locations)和所请求路径的信息(例如用户/索引,位置/编辑)。 它也应该与偏见一起使用。 我想到了一些选项,我将在下面发布。 它们都不是完全令人满意的。

呈现启动更新的操作

我有一个带有操作帐户和配置文件的SettingsController ,还有一个看起来像这样的更新 : def update @player = current_user if @player.update_attributes(params[:player]) flash[:success] = “Profile updated.” redirect_to :back else @title = “Edit” render end end 现在,配置文件和帐户操作都有一个相应的视图,其中包含一个用于编辑Player模型的某些记录的表单。 当您尝试保存其中一个表单时,它会失败,即。 它没有通过validation,它应该呈现再次初始化更新的操作 ,因此它可以显示适当的错误消息。 但问题是,我如何知道哪一个请求更新,并呈现正确的更新? 基本上某种等效的redirect_to:back就是我在这里寻找的东西。

如何拦截rails的模板渲染

我有一个应用程序,提供多个网站。 与Stack Exchange类似,这几个站点的行为非常相似。 给出以下视图目录结构: views/ shared/users/index.html.erb app1/users/index.html.erb app2/users/ 如何在Rails中重写默认模板渲染 当调用App1的UsersController #index时,它会呈现app1 / users / index.html.erb 当调用App2的UsersController #index时,它意识到没有index.html.erb模板,所以在提出丢失的模板错误之前检查shared / users / index.html.erb 提前致谢

simple_form错误地呈现单选按钮

使用simple_form我渲染一些单选按钮以在注册页面上选择Gender。 码: = f.input :gender, :collection => gender, :as => :radio_buttons, :item_wrapper_class => ‘inline’ 这给出了如下输出: 有没有办法让第一个单选按钮落后于男性和女性背后的第二个单选按钮?

渲染:json有额外的数据

我有一个名为Todo的模型,我渲染了这个: format.json { render :json => @todo } 每个Todo属于一个列表。 我想将@todo.list.completion_percentage的值添加到JSON,因为我需要这个来更新UI(AJAX请求),所以JSON看起来像这样: { “todo”: { “created_at”: “2011-02-26T19:39:43Z”, “updated_at”: “2011-02-26T19:53:13Z”, “done”: true, “text”: “Apples”, “id”: 10, “list_id”: 2, “user_id”: 1, “due_date”: null // BELOW THIS LINE SHOULD BE IMPLEMENTED “list”: { “completion_percentage”: 63 } } } 我尝试了各种各样的东西但没有效果。 谁能帮我?

在模型validation失败的Rails中哪里呈现注释控制器?

我的rails应用程序中有一个简单的video模型,有很多评论。 我在video的节目页面上显示这些评论。 当我提交表格时,一切正常; 但是,如果评论模型上存在validation错误,那么我的系统会崩溃。 如果评论模型上存在validation错误,我只想再次渲染video的显示页面,并显示validation错误样式。 如何在我的创建操作中执行此操作? 非常感谢! class CommentsController ‘Thanks for posting your comments.’ else render # what? What do I render in order to show the video page’s show action with the validation error styling showing? Please help! end end end

将Rails渲染格式限制为html的方法

我有一个只有html模板的Rails 2.1.2站点,例如jobs.html.erb,所以当我请求一个restful资源时: www.mysite.com/jobs/1 它呈现我的html工作,但是,如果我要求: www.mysite.com/jobs/1.xml 我收到错误: 模板丢失在视图路径c:/ workspace / mysite / app / views中缺少模板jobs / show.xml.erb 更糟糕的是,我也可以请求类似的东西 www.mysite.com/jobs/1.xyz 事实上,我看到了错误: 模板丢失在视图路径c:/ workspace / mysite / app / views中缺少模板作业/ show.xyz.erb 要严格地呈现html内容,告诉Rails我最不清楚也最简单的方法是除了.html.erb文件之外我不想呈现任何内容。 重要的是要注意: 我的一些控制器动作包含对render()方法的条件调用,而其他人使用默认的Rails行为,即如果不调用render(),则将呈现名为youraction.html.erb的模板。 我的代码不使用responds_to()方法 如果解决方案不在render / responds_to级别会很好,因为我必须修改大量的操作。 也许有一种方法来配置Rails,以便只呈现html模板?

从另一个控制器渲染控制器操作

我认为代码更明确 选项A. class RedirectController ‘posts’, :action => ‘show’, :id => 1 # it works end end 选项B. class RedirectController ‘posts’, :action => ‘show’, :id => 1 # it doesn’t work end end (B)可以在另一个控制器中加载另一个动作吗? (而不仅仅是视图)怎么样? 谢谢

rails:过滤前放入和中断

我想要一个像“must_have_permission_to_write”之类的filter,如果用户没有写入权限,则在调用时会显示一条消息“你不能这样做!” 并返回。 问题是我得到“每个动作只能呈现或重定向一次”当然……我如何在filter中停止执行? 谢谢