我必须在不刷新页面的情况下保存用户值。到目前为止,我已经创建了一个保存按钮,但点击按钮后,页面正在刷新。我需要删除刷新。
这是我的表格:
<div class="parent">
<%= form_for(:display , url: 'display',method: :put) do |f| %>
<select name="display[display]" id="display_display">
<option hidden><%= data['display']%></option>
<option value="false">false</option>
<option value="true">true</option></select>
<%= f.hidden_field :id, value: field_id%>
<button type="submit" class="round-6" href="/">✔</button>
<%end%>
</div>
这就是它的名字:
put '/fields/display', to:'fields#display'
这是它的控制器:
def display
@field = Api::AnalyticsQueryBuilderMetadataService::Field.update_field_display(params.require(:display).permit(:display,:id))
end
这是我的update_field_displaymethod:
def self.update_field_display(params)
id = params[:id]
value = {'display' => params[:display] }
response = Api::Connection.edit_request('fields',id, value)
end
这是我的edit_request方法:
def edit_request(type,id, params)
response = connection.put("#{type}/#{id}", params)
rescue Faraday::Error => e
Rails.logger.error "Connection Failed #{e}"
nil
end
这是我的连接请求呼叫:
def connection
Faraday.new(url: ENV['URL'],
params: { clientId: ENV['CLIENT_ID'] },
headers: { 'Authorization' => oauth_token_generation })
end
如何通过刷新页面来保存api调用上的值。
您可能希望在控制器update
方法中渲染相同的视图,因为渲染不会重定向并保持当前视图的完整
代码:
def update
@user = User.find(params[:id])
if @entity.save(entity_params)
render :edit, notice: 'saved'
else
render :edit, alert: 'cant edit'
end
end
无需刷新页面,即可使用Action Cable
。我想是okie。https://guides.rubyonrails.org/action_cable_overview.html