我有点像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) 如何在Rails控制台中执行image_tag方法
运行控制台$ rails c
加载助手
包括ActionView :: Helpers
执行命令
IMAGE_TAG( 'test.png')
我有一个奇怪的错误.

请帮忙!
我有两个相互引用的部分.当我在控制台中计算嵌套依赖项时就这样(使用一些调试代码输出正在加载的模板):
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)
如何在视图中显示页面加载时间,类似于日志文件显示"在19ms内完成200 OK(视图:16.8ms |模型:0.497ms)"
我正在使用一个音乐会巡回网站的应用程序,所有时间(公告时间,开始时间和活动开始时间)都在每个特定地点的时区本地.我将用户输入的日期/时间视为适用,并运行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 %>.
不幸的是,我没有找到正确的方法来做到这一点.你有什么值得尝试的想法吗?
非常感谢你.
我正在尝试将一个类应用于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等等.
有人知道怎么做吗?
我有一个使用引擎的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) 我最初在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
在 Rails 7 中,使用标签生成的表单form_with默认发送远程请求(turbo.js 处理表单提交事件,无论如何)。
以前,人们会将remote: false或local: 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 请求?
在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,但它不起作用,有帮手吗?
actionview ×10
ruby-on-rails ×10
css ×1
form-for ×1
form-with ×1
helper ×1
helpers ×1
irb ×1
rails-admin ×1
rails-api ×1
ruby ×1