我正在使用rails 3.2.21。我想在特定条件下创建新元素后重定向请求。 我的控制器创建了动作代码:
def create
@community_group = Community::Group.new(params[:community_group])
@community_group.member_ids = []
@community_group.member_ids = params[:member_ids].present? ? [@current_user.id] + params[:member_ids] : [@current_user.id]
respond_to do |format|
if @community_group.save
format.html{ redirect_to community_group_path(@community_group) }
else
flash.now[:error] = 'Group Saving Failed'
format.html{}
end
end
端
N.B:我没用过 remote:true 表格提交。
我在日志中看到它将请求重定向到正确的路径并呈现右页。我检查使用Rails.logger.info在哪里是我的预期页面呈现与否,在我看来似乎没问题。 我创建操作的日志信息:
Started POST "/community/groups" for 127.0.0.1 at 2015-03-03 14:18:47 +0600
Processing by Community::GroupsController#create as HTML
然后成功重定向到显示操作(我的日志信息)
Redirected to http://localhost:3001/community/groups/53
Completed 302 Found in 1008.4ms (ActiveRecord: 208.7ms)
现在新请求开始:(我的日志信息)
Started GET "/community/groups/53" for 127.0.0.1 at 2015-03-03 17:08:52 +0600
Processing by Community::GroupsController#show as HTML
Parameters: {"id"=>"53"}
但我的观点仍然在同一页面上,并且网址相同。我不明白这个问题。如果任何人遇到同样类型的问题,请提供帮助。
我的节目动作代码:
def show
@community_group = Community::Group.find(params[:id])
@community_group_post = @community_group.community_group_posts.order("id DESC").page(params[:page]).per_page(10)
respond_to do |format|
format.html
end
端
答案 0 :(得分:0)
我解决了我的问题。它不是控制器级别问题或请求重定向相关问题(根据代码请求重定向)。我的问题是,我使用iframe作为我的表单目标。因此,请求重定向到目标iframe并刷新它,但我期待整页刷新。我使用JavaScript强制刷新整页来解决我的问题。
window.location.reload();
534 other ways to reload the page with JavaScript
对于像我这样的新手网络开发者,我想添加有关html表单目标属性的额外信息。
目标用于指定您在提交表单时在哪个窗口中显示服务器的响应。
可能的值是:
我认为上述信息可能对某人有价值。