当我尝试url_for在 Rails 控制台中使用时,我看到:
url_for(User.first.images.first)
NoMethodError: undefined method `url_for' for main:Object
Run Code Online (Sandbox Code Playgroud)
如何在 Rails 控制台中使用该方法?
如果有人能够展示在 Rails 6 或 Rails 7 Alpha 2 引擎中使用 jquery ui 所需的确切步骤,我将不胜感激。我无法让 importmap-rails 在 Rails 7 引擎中工作,也无法让 webpacker 在 Rails 6 引擎或 Rails 7 alpha 2 引擎中工作。给定一个名为 custom_page 的引擎,使用生成
rails plugin new custom_page --mountable --full
Run Code Online (Sandbox Code Playgroud)
我将 jquery-ui-rails 作为依赖项包含在 gemspec 中。
spec.add_dependency 'jquery-ui-rails'
Run Code Online (Sandbox Code Playgroud)
也许这应该是一个runtime_dependency?完整的依赖项列表是
spec.add_dependency "rails", "~> 7.0.0.alpha2"
spec.add_dependency 'new_ckeditor'
spec.add_dependency 'ancestry'
spec.add_dependency 'friendly_id', '>= 5.4.0'
spec.add_dependency 'pg_search'
spec.add_dependency 'carrierwave', '~> 2.0'
spec.add_dependency 'carrierwave-imageoptimizer'
spec.add_dependency 'sassc-rails', '~> 2.0.0'
spec.add_dependency 'pg', '~> 1.1'
spec.add_dependency 'jquery-rails'
spec.add_dependency 'jquery-ui-rails'
spec.add_development_dependency "puma"
#Testing Gems
spec.add_development_dependency …Run Code Online (Sandbox Code Playgroud) jquery-ui ruby-on-rails rails-engines ruby-on-rails-6 ruby-on-rails-7
我有一个 Rails 引擎和 Rails 应用程序,都运行 Rails 6.0.0.rc1。
引擎使用 ActiveStorage 附件定义模型,例如。
module Shop
class Product < ApplicationRecord
...
has_one_attached :image
has_many_attached :images
end
end
Run Code Online (Sandbox Code Playgroud)
在引擎视图和应用程序视图中使用此模型并尝试调用= url_for(product.image)会引发异常undefined method 'attachment_path' for #<#<Class:XXX>:XXX>。product.image.attached?返回 true,因此附件可用。
这段代码是从 Rails 应用程序中提取的,它运行得很好。是否有针对 Rails Engine 模型附件的特殊路线助手或rails active_storage:install文档中未提及的除所需之外的任何设置?
ruby-on-rails rails-engines rails-activestorage ruby-on-rails-6
我正在渲染一个使用 ActionText 输入 rich_text_area 的表单,它是 Trix WYSIWYG 富文本编辑器的 Rails 实现。它一直工作得很好,直到我开始重构我的视图以使用布局,其中表单内容可以产生不同的表单。表单呈现良好,除了rich_text_areas 之外,删除使其成为布局所需的代码可使其恢复正常。我的代码如下。
\n\n我正在使用以下代码将表单呈现为部分形式:
\n\n<%= stylesheet_link_tag "form" %>\n<%= form_with model: @family, class: "form-group" do |f| %>\n\n <%= label_tag(:banner_image, \'Select a Banner Image\')%>\n <%= f.file_field :banner_image%>\n <br>\n <br>\n\n <%= label_tag(:zh_family_name, \'Chinese Family Name\') %>\n <%= f.text_field :zh_family_name %>\n <br>\n <br>\n <%= label_tag(:en_family_name, \'English Family Name\') %>\n <%= f.text_field :en_family_name %>\n <br>\n <br>\n <%= label_tag(:en_summary, \'Summary\') %>\n <%= f.text_field :en_summary %>\n <br>\n <br>\n <%= label_tag(:zh_summary, \'Summary Chinese\') %>\n <%= f.text_field …Run Code Online (Sandbox Code Playgroud) 我有以下工厂
FactoryBot.define do
factory :function_group do
factory :reports do
# id 4
name { "Reports" }
functions {
[find_or_create(:organization_report_function),
find_or_create(:account_status_report_function)]
}
end
end
end
Run Code Online (Sandbox Code Playgroud)
FactoryBot.define do
factory :function do
factory :organization_report_function do
name { "Org Report Function" }
module_class { "organization_report_function" }
end
factory :account_status_report_function do
name { "Acct Status Report" }
module_class { "account_status_report_function" }
end
end
end
Run Code Online (Sandbox Code Playgroud)
在我的 rails_helper.rb 中,我的代码如下所示
require 'email_spec'
require 'capybara/rails'
require 'capybara/rspec'
require 'capybara-screenshot/rspec'
require 'capybara/poltergeist'
SERVER_PORT = 10000 + ENV.fetch('TEST_ENV_NUMBER', …Run Code Online (Sandbox Code Playgroud) 在rails 6升级后的应用程序中rails 5,我有以下包文件
#app/javascript/packs/application.js
import "core-js/stable";
import "regenerator-runtime/runtime";
require("trix")
require("@rails/actiontext")
Run Code Online (Sandbox Code Playgroud)
和
#app/javascript/packs/application.scss
@import '../stylesheets/datatables.scss';
Run Code Online (Sandbox Code Playgroud)
服务器webpack-dev-server编译成功,但文件中包含的 javascriptapplication.js未运行。事实上,如果我更改require("trix")为require("no_such_file")它不会导致编译错误,所以我的application.js被完全忽略。我该如何解决?
我正在尝试使用 UJS 触发表单提交:
<%= f.file_field :profile_image,
direct_upload: true,
accept: 'image/png,image/gif,image/jpeg',
onchange: "Rails.fire(this.form, 'submit')"
%>
Run Code Online (Sandbox Code Playgroud)
但是,我在 JS 控制台中看到以下错误:
ReferenceError: Can't find variable: Rails
Run Code Online (Sandbox Code Playgroud)
应用布局文件指向应用JS包:
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
Run Code Online (Sandbox Code Playgroud)
我可以看到它通过控制台日志的输出加载:
console.log('Application pack loaded')
require("@rails/ujs").start()
require("turbolinks").start()
require("@rails/activestorage").start()
require("channels")
require("@rails/activestorage").start()
Run Code Online (Sandbox Code Playgroud)
据我了解,rails ujs 应该公开Rails对象。那正确吗?
为什么该Rails变量对浏览器不可用?我需要做什么来确保它是?
更新:
我发现问题是库依赖问题。我没有jquery-rails安装 gem,因此我不需要jquery-ujs在我的应用程序中使用该库。简而言之,jquery-ujs当我只有可用的内置rails-ujs功能时,我正在使用语法:( (face-palm)。感谢所有查看、提供和回答的人。
我觉得我正在做一些相当基本的事情,但由于某种原因我无法弄清楚我做错了什么。我能够通过使用帮助程序remote: true的选项,使用 AJAX 成功异步创建记录form_for。data但是,我尝试返回的简单 JSON 结构似乎在AJAX 响应的对象中不可用。当我运行时,console.log(data)我undefined进入浏览器 js 控制台。
这是我的代码的相当准确的表示:
视图中的表单:
= form_for :thing, remote: true, html: { id: 'thing' } do |f|
= f.text_field :name
= f.submit 'submit'
Run Code Online (Sandbox Code Playgroud)
我的控制器代码:
def create
@thing = Thing.new(thing_params)
if @thing.save
render json: { message: 'Thank you' }
else
render json: { message: 'oh no' }
end
end
Run Code Online (Sandbox Code Playgroud)
我的 JavaScript/jQuery:
$(document).ready(function(){
$('#thing').on('ajax:success', …Run Code Online (Sandbox Code Playgroud) 目前 simple_form 不支持带有 rich_text_area 输入字段的 ruby on rails 6 action_text。所以目前我的输入字段在 posts/_form.html.haml 中看起来像这样:
= f.label :description
= f.rich_text_area :description
= f.error :description, class: 'text-danger'
Run Code Online (Sandbox Code Playgroud)
如何使其工作= f.input :description并具有富文本区域?
activerecord ruby-on-rails simple-form ruby-on-rails-6 actiontext
在 Rails 6.0.3.1 中,有没有办法在不使用诸如安全标头 gem 之类的 gem 的情况下本机设置 Rails 会话 cookie 相同的站点属性?
ruby-on-rails ×10
ruby-on-rails-6 ×10
actiontext ×2
activerecord ×1
ajax ×1
factory-bot ×1
jquery-ui ×1
rails-ujs ×1
rspec ×1
rspec-rails ×1
ruby ×1
simple-form ×1
trix ×1
webpacker ×1