我搭建了一个Authorization(user_id,code,otherparam1,...),我想在authorizations_controller中添加一个custom_create方法,该方法只需要一个代码,该方法生成其他参数。我需要这个方法来使用json或者在其他方法中调用,比如User.newcustom(code)
def newcustom
case request.method
when :post #post
code = params[:code]
if(code and code != '')
...
respond_to do |format|
if @authorization.save
format.html { redirect_to @authorizations, notice: 'Authorization was successfully created.' }
format.json { render json: @authorizations, status: :created, location: @authorization }
else
format.html { render action: "new" }
format.json { render json: @authorization.errors, status: :unprocessable_entity }
end
end
else #get
respond_to do |format|
format.html
end
end
这是我的newcustom.html.erb
<%= form_tag( newcustom_authorizations_path, :method => :post ) do %>
<div class="field">
<%= text_field_tag :code %>
</div>
<div class="actions">
<%= submit_tag('Get tokens') %>
</div>
<% end %>
但它不能通过形式的json工作。调用newcustom(:code =&gt;代码)方法会抛出太多参数(1表示0)。有什么想法吗?
答案 0 :(得分:0)
为此添加给定的代码到config / routes.rb
resources :authorizations do
collection do
post :newcustom
end
end
答案 1 :(得分:0)
感谢大家的帮助。
我最终解决了我的问题,过滤了create函数的参数,然后调用了我的customcreate参数。 是的,我在玩:)