So I want to do this:
save_to_library(params) if params[:commit] == "lib"
but save_to_library apparently doesn't take any arguments.
h开发者_C百科ow do actions get params if they don't take arguments?
(I know this action works when I link to it directly... just trying to streamline usability)
Your controller processes the params and makes them available to you through an accesor method, they are available to your whole controller without the need to pass it around in method parameters.
params is a global hash, imagine it as if it were defined outside the method:
params = {:commit => "lib"}
def save_to_library
@var = params[:commit]
# etc..
end
If you want to do some conditional actions you can just do this:
def update
save_to_library if params[:commit] == "lib"
end
def save_to_library
@var = params[:commit] # @var = "lib"
# etc..
end
And it should just work.
精彩评论