【发布时间】:2010-11-04 11:14:49
【问题描述】:
我在使用 Rails、Javascript 和重定向时遇到了严重问题。基本上,如果禁用 JS,我有重定向到不同页面的“简单”问题。如果启用了 JS,那么我会立即内联添加一个新项目——这就像一个魅力。但是,如果 JS 被禁用,我想重定向到不同控制器的 NEW 页面。基本上模型设置是这样的:
Site -> Buildings -> Controllers (not to be confused with Rails "controllers")
我有一个“SiteManagerController”,它使用 JS 来管理整个事情。基本上我有一个场景,我正在尝试执行以下操作:
1) 如果启用了 JS,我想内联添加项目 2) 如果 JS 被禁用,我希望渲染 ":controller => building, :action => new"
我的“link_to_remote”很简单。正如我所说,它适用于 JS。我的rails控制器代码如下:
def add_building @building = Building.new @building.name = "未命名" @building.site_id = 参数[:id] @building.save respond_to 做 |格式| format.html {redirect_to :controller => "buildings", :action => "new"} 格式.js 结尾 结束
这不起作用。值得一提的是,在查看页面源代码时,没有迹象表明启用 JS 和禁用 JS 有什么不同。所有链接看起来都一样——即 Ajaxy。
我知道这不应该是一个如此复杂的问题,但我很困惑。
最好的。
附:请不要更改这篇文章的标题。 ;)
【问题讨论】:
-
你可以将所有@building 的东西减少到
Building.create({:name => "Untitled", :site_id => params[:id]})。 :) -
是的,那是试图尽可能冗长的结果。不过还是谢谢。
标签: javascript ruby-on-rails redirect render