summaryrefslogtreecommitdiff
path: root/app/controllers/nodes_controller.rb
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-06-25 04:34:55 +0200
committererdgeist <erdgeist@erdgeist.org>2026-06-25 04:34:55 +0200
commitf7a5944a1f44ede9881d368a36eb9f7d82d6ab69 (patch)
tree3803e9840eab4976b299a8cce969b7785b018b19 /app/controllers/nodes_controller.rb
parent3f236c7a0e544db94ef822f120d649ac5ee958f7 (diff)
Rails 4.2 model and controller fixes
- Wrap all scopes in lambdas (required in Rails 4) - Move scopes after associations in page.rb (evaluated at load time in Rails 4) - Convert association :order options to lambda syntax - Remove attr_accessible from page.rb and user.rb - Add Strong Parameters: user_params in UsersController, node_params/page_params in NodesController - Fix clone_attributes_from: exclude id/page_id/timestamps when cloning translations - Fix redirect_to :back → request.referer fallback in nodes_controller - Fix node_path/publish and unlock actions: pass @node argument
Diffstat (limited to 'app/controllers/nodes_controller.rb')
-rw-r--r--app/controllers/nodes_controller.rb18
1 files changed, 13 insertions, 5 deletions
diff --git a/app/controllers/nodes_controller.rb b/app/controllers/nodes_controller.rb
index 7c082c4..2b36b78 100644
--- a/app/controllers/nodes_controller.rb
+++ b/app/controllers/nodes_controller.rb
@@ -21,7 +21,7 @@ class NodesController < ApplicationController
21 end 21 end
22 22
23 def new 23 def new
24 @node = Node.new params[:node] 24 @node = Node.new node_params
25 if params.has_key?(:parent_id) 25 if params.has_key?(:parent_id)
26 @parent_id = params[:parent_id] 26 @parent_id = params[:parent_id]
27 @parent_name = Node.find(@parent_id).title 27 @parent_name = Node.find(@parent_id).title
@@ -62,7 +62,7 @@ class NodesController < ApplicationController
62 rescue LockedByAnotherUser => e 62 rescue LockedByAnotherUser => e
63 flash[:error] = e.message 63 flash[:error] = e.message
64 if request.referer 64 if request.referer
65 redirect_to :back 65 redirect_to request.referer || node_path(@node)
66 else 66 else
67 redirect_to node_path(@node) 67 redirect_to node_path(@node)
68 end 68 end
@@ -70,10 +70,10 @@ class NodesController < ApplicationController
70 end 70 end
71 71
72 def update 72 def update
73 @node.update_attributes(params[:node]) 73 @node.update_attributes(node_params)
74 @draft = @node.find_or_create_draft current_user 74 @draft = @node.find_or_create_draft current_user
75 @draft.tag_list = params[:tag_list] 75 @draft.tag_list = params[:tag_list]
76 if @draft.update_attributes( params[:page] ) 76 if @draft.update_attributes( page_params )
77 flash[:notice] = "Draft has been saved: #{Time.now}" 77 flash[:notice] = "Draft has been saved: #{Time.now}"
78 respond_to do |format| 78 respond_to do |format|
79 format.html { redirect_to edit_node_path(@node) } 79 format.html { redirect_to edit_node_path(@node) }
@@ -91,7 +91,7 @@ class NodesController < ApplicationController
91 def publish 91 def publish
92 @node.publish_draft! 92 @node.publish_draft!
93 flash[:notice] = "Draft has been published" 93 flash[:notice] = "Draft has been published"
94 redirect_to node_path 94 redirect_to node_path(@node)
95 end 95 end
96 96
97 def unlock 97 def unlock
@@ -105,6 +105,14 @@ class NodesController < ApplicationController
105 end 105 end
106 106
107 private 107 private
108
109 def node_params
110 params.fetch(:node, {}).permit(:slug, :parent_id)
111 end
112
113 def page_params
114 params.fetch(:page, {}).permit(:title, :abstract, :body, :template_name, :published_at, :user_id)
115 end
108 116
109 def find_node 117 def find_node
110 @node = Node.find(params[:id]) 118 @node = Node.find(params[:id])