【问题标题】:changing the text in button when it is clicked on running a daemon thread单击运行守护程序线程时更改按钮中的文本
【发布时间】:2012-12-26 13:53:38
【问题描述】:

我是 rails 新手。我有一个按钮,单击该按钮会启动一个守护线程,我希望该按钮中的文本更改为“正在执行”,视图中的代码是

<td>
<% if data.vName == 'BuzzCity' or data.vName == 'neXva'%>
  <%= button_to "Start", { :action=> :execute_rake },  :remote => true  %>
<%end%>
</td>  

在控制器中是

def execute_rake
  vendor_name = 'neXva'#params[:vendorName]
  @async = ::AppMall::AsyncTask.new()
  if vendor_name == 'BuzzCity'

  elsif  vendor_name == 'neXva'

  else
   render :text => 'Unknown vendor'  
   return    
  end
 render :text => 'Executing'
end 

【问题讨论】:

    标签: ruby-on-rails embedded-ruby


    【解决方案1】:

    只需添加此选项:disable_with

    试试这个,

    <%= button_to "Start", { :action=> :execute_rake },  :remote => true, :disable_with => 'Executing...'  %>
    

    【讨论】:

    • 我这样做了,但它也将进入控制器并执行 else 循环,并且在另一个页面中呈现文本。是否可以从控制器中设置按钮中的文本
    • @Sajeer 试试这个 1) 删除渲染文本代码并将该文本存储在 @text 变量中 2) 将 id 设置为 button_to 就像 &lt;%= button_to "Start", {:action =&gt; :execute_rake}, :remote =&gt; true, :id =&gt; "button_id", :method =&gt; :get %&gt; 3) 最后在你的 execute_rake 中。 js.erb 文件添加 $("#button_id").val("&lt;%= @text %&gt;") 注意:不要忘记使用 gem 'jquery-rails'
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多