标签: actionview

Rails form_tag表单写入 - 具有非活动记录模型

我有点像Rails的新手.我正在写一个couchrest-rails应用程序,所以我没有使用activerecord这个模型.我只是想通了那意味着

form_for(@model) 
Run Code Online (Sandbox Code Playgroud)

不行.我正在尝试研究如何使用form_tag - 但大多数示例都不涉及new和create操作.

这是错的:

<h1>New article</h1>

<% form_tag new_article_url(@article), :method => :post do |f| %>
  <%= f.error_messages %>

  <p>
    <%= f.label :title %><br />
    <%= f.text_field :title %>
  </p>
  <p>
    <%= f.submit 'Create' %>
  </p>
<% end %>

<%= link_to 'Back', articles_path %>
Run Code Online (Sandbox Code Playgroud)

因为当我运行我的Cucumber场景时,我得到了这个:

Scenario: Create Valid Article                            # features/article.feature:16
  Given I have no articles                                # features/step_definitions /article_steps.rb:8
  And I am on the list of articles                        # features/step_definitions/webrat_steps.rb:6
/home/deploy/www/www.trackingplace.com/app/ccc/app/views/articles/new.html.erb:3: warning: multiple values for a block parameter (0 for …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails actionview form-for actionviewhelper

11
推荐指数
1
解决办法
1万
查看次数

Rails控制台 - 使用image_tag方法

如何在Rails控制台中执行image_tag方法

  1. 运行控制台$ rails c

  2. 加载助手

    包括ActionView :: Helpers

  3. 执行命令

    IMAGE_TAG( 'test.png')

我有一个奇怪的错误. 替代文字

请帮忙!

ruby-on-rails helper irb actionview actionviewhelper

11
推荐指数
2
解决办法
1万
查看次数

为什么我的自引用模板会破坏控制台和rake中的缓存摘要计算,但不会破坏服务器中的缓存摘要计算?

我有两个相互引用的部分.当我在控制台中计算嵌套依赖项时就这样(使用一些调试代码输出正在加载的模板):

finder = ApplicationController.new.lookup_context
ActionView::Digestor.new(name: "posts/show", finder: finder).nested_dependencies
Run Code Online (Sandbox Code Playgroud)

或通过像这样的rake任务:

rake cache_digests:nested_dependencies TEMPLATE=posts/show
Run Code Online (Sandbox Code Playgroud)

我得到一个初始依赖项的简短列表,然后在无限循环中,直到ruby堆栈已满:

...
>>>>>>> users/foo
>>>>>>> users/bar
>>>>>>> users/baz
>>>>>>> users/bip
>>>>>>> users/foo
>>>>>>> users/bar
>>>>>>> users/baz
>>>>>>> users/bip
SystemStackError: stack level too deep
Run Code Online (Sandbox Code Playgroud)

(模板名称已更改)

但是,当我运行应用服务器并请求模板时,事情运行得很好,没有无限循环.

以下是所有上述情况中的设置:

config.action_controller.perform_caching = true
config.cache_store = :file_store, Rails.root.to_s + '/tmp/cache/stuff'
ActionView::Base.cache_template_loading = true
Run Code Online (Sandbox Code Playgroud)

代码表明它确实具有递归参考保护:https://github.com/rails/rails/blob/v4.1.8/actionview/lib/action_view/digestor.rb#L35

为什么这种保护在服务器环境中工作,而不是在控制台或rake任务中?

(也是一个github问题https://github.com/rails/rails/issues/18667)

ruby ruby-on-rails actionview cache-digests

11
推荐指数
1
解决办法
282
查看次数

在Rails中显示页面加载时间3

如何在视图中显示页面加载时间,类似于日志文件显示"在19ms内完成200 OK(视图:16.8ms |模型:0.497ms)"

ruby-on-rails actionview ruby-on-rails-3

9
推荐指数
2
解决办法
5236
查看次数

Rails - 在指定时区中选择日期时间

我正在使用一个音乐会巡回网站的应用程序,所有时间(公告时间,开始时间和活动开始时间)都在每个特定地点的时区本地.我将用户输入的日期/时间视为适用,并运行before_filter来设置适当的时区,以便所有内容都以UTC格式存储在数据库中.对于"新"表单以及在索引和显示操作中显示时间,完全没问题.当数据从数据库带回到视图中时,我使用in_time_zone来根据特定的场地进行调整.

唯一的问题是编辑表格.日期/时间选择以UTC显示数据.当我在网站上工作时,我会进行心理调整,但对于其他人而言,这是令人困惑的.我想做一些事情:

<%= f.datetime_select :start_datetime.in_time_zone(@event.time_zone) %>

或者,在控制器中:

def edit
  @performance = Performance.find(params[:id])
  @event = @performance.event
  @performance.start_datetime = @performance.start_datetime.in_time_zone(@event.time_zone)
end
Run Code Online (Sandbox Code Playgroud)

然后简单地说,<%= f.datetime_select :start_datetime %>.

不幸的是,我没有找到正确的方法来做到这一点.你有什么值得尝试的想法吗?

非常感谢你.

ruby-on-rails actionview actionviewhelper ruby-on-rails-3

9
推荐指数
1
解决办法
3284
查看次数

将类添加到生成的表单中的正确button_to语法是什么?

我正在尝试将一个类应用于Rails 3中button_to生成的表单.

:class选项设置提交按钮的类,以便文档告诉我们:form_class将类应用于表单.

例如

<%= button_to 'x', user_contact_path(@user, contact), :method => :delete, :form_class => "delete" %>
Run Code Online (Sandbox Code Playgroud)

这只是将属性添加form_class="delete"到按钮元素.我尝试过使用各种组合:html_options等等.

有人知道怎么做吗?

css ruby-on-rails actionview helpers ruby-on-rails-3

9
推荐指数
1
解决办法
2万
查看次数

Rails:不在开发中重新加载引擎的视图路径

我有一个使用引擎的Rails项目,在开发模式下工作时遇到问题.

每当我对项目中的某些内容进行一些更改时,应用程序就无法找到引擎的视图.

 Missing template spree/api/credit_card_types/index, spree/api/base/index with {:locale=>[:es], :formats=>[:json], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee, :rabl], :versions=>[:v1]}. Searched in:
  * "/home/user/project/app/views"
  * "/home/user/.rvm/gems/ruby-2.1.0@project/bundler/gems/spree-ebda3354180a/api/app/views"
Run Code Online (Sandbox Code Playgroud)

引擎的视图根目录没有出现在搜索路径中,但我无法理解原因.任何的想法?

我的routes.rb(注意我没有安装我的引擎)

require 'resque/server'

Project::Application.routes.draw do

  resources :shipping_companies

  get 'signin', to: 'signin#signin'
  get 'register', to: 'register#register'

  scope '/frontend/api', module: :api do
    # ...
  end

  namespace :frontend do
  end

  Spree::Core::Engine.add_routes do
    # ...
  end

  # Custom Admin
  Spree::Core::Engine.add_routes do
    # ...
  end

  get '/faq/' => 'pages#show', id: 'faq'
  get '/privacy/' => 'pages#show', id: 'privacy'
  get '/terms/' => 'pages#show', …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails actionview

9
推荐指数
1
解决办法
603
查看次数

将rails_admin与rails_api一起使用

我最初在rails_api GitHub上发布了这个问题,但现在由于不活动而在此发布.

我正在尝试使用rails_adminRails 5 API应用程序.我添加了额外的ActionController模块,以至于我可以使用有效的rails_admin面板或工作API请求.问题似乎是rails_admin依赖于ActionView::Layouts,包含后会导致API请求出现问题.

的Gemfile:

gem 'rails', '>= 5.0.0.beta3', '< 5.1'
...
gem 'rack-pjax', github: 'afcapel/rack-pjax'
gem 'remotipart', github: 'mshibuya/remotipart'
gem 'kaminari', github: 'amatsuda/kaminari', branch: '0-17-stable'
gem 'rails_admin', github: 'sferik/rails_admin'
Run Code Online (Sandbox Code Playgroud)

我配置我的应用程序使用ActionDispatch::Flash:

module MyApp
  class Application < Rails::Application
    ...
    config.middleware.use ActionDispatch::Flash
  end
end
Run Code Online (Sandbox Code Playgroud)

我为Rails API,ApplicationController 配置了额外的模块:

class ApplicationController < ActionController::API
  include Knock::Authenticatable
  include Pundit

  # RailsAdmin support
  include AbstractController::Helpers
  include ActionController::Flash
  include ActionController::RequestForgeryProtection
  include ActionController::MimeResponds
  include ActionController::HttpAuthentication::Basic::ControllerMethods
  include …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails actionview rails-admin rails-api ruby-on-rails-5

9
推荐指数
1
解决办法
2296
查看次数

Rails 7:使用 form_with 表单的本地(非 XHR)请求

在 Rails 7 中,使用标签生成的表单form_with默认发送远程请求(turbo.js 处理表单提交事件,无论如何)。

以前,人们会将remote: falselocal: true参数传递给表单助手,以获得常规的 HTML 表单行为。

但现在不行了,这不起作用:

<%= form_with scope: :session, url: session_path, local: true do |form| %>
  <p><%= form.label :email %></p>
  <p><%= form.text_field :email %></p>

  <p class="mt"><%= form.label :password %></p>
  <p><%= form.password_field :password %></p>

  <p class="mt"><%= form.submit "Enter" %></p>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我应该将什么选项传递给 form_with helper 才能从我的表单获取非 XHR 请求?

ruby-on-rails actionview form-with ruby-on-rails-7

9
推荐指数
1
解决办法
3713
查看次数

Rails 5.1:公共文件夹中文件的url帮助程序

在Rails 5.1中,如果我们对公用文件夹中的文件使用asset_path,则会出现弃用警告.

DEPRECATION WARNING: The asset "favicon.ico" is not present in the asset pipeline.Falling back to an asset that may be in the public folder. This behavior is deprecated and will be removed.

所以我试过了public_asset_path,但它不起作用,有帮手吗?

ruby-on-rails actionview asset-pipeline

8
推荐指数
2
解决办法
3401
查看次数